RepoCpp_FileMgr.html
copyright © James Fawcett
Revised: 11/18/2025
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.