about
12/02/2022
FileManager Repo
FileManager code

FileManager  Repository

Compares several designs for directory navigation

Quick Status Code functions correctly no known defects Demonstration code yes Documentation yes Test cases no Static library no Build requires C++17 option Planned design changes None

1.0 Contents

FileManager contains five Directory Navigators. They all do the same thing in different ways:
  • DirExplorer-Naive:
    Searches a directory tree rooted at a specified path for files matching specified patterns, e.g., *.h, *.cpp, *.cs, ... It is a naive implementation in that application specific processing has to be inserted into its doFile and doDir methods.
  • DirExplorer-Template:
    Same functionality as Naive, but the doFile and doDir methods are specified by a class App, passed as a template parameter, so the file manager doesn't need to change for each application.
  • DirExplorer-Inheritance:
    Same functionality, but now doFile and doDir are virtual methods that an application overrides.
  • DirExplorer-Events:
    Same functionality, but implemented with the "Command Pattern". Multiple parts of an application can subscribe for notification of file and directory discovery.
  • DirExplorer-Provider:
    Uses a provider plug-in model. That's more powerful, but also more complex that the other designs.
I built these to demonstrate design techniques for CSE687 - Object Oriented Design, at Syracuse University. I usually use DirExplorer-Template, for my own projects, as it is the simplest and easiest to use of the reusable file manager components.

2.0 Build

These projects were built with Visual Studio Community Edition - 2019, and tested on Windows 10.
  Next Prev Pages Sections About Keys