Search Directories: Recursion Examples
Searching/traversing directories is a natural example of recursion since
directory hierarchies are recursive. A directory contains files and
other directories.
The classes DirEntry and DirStream make traversing
directories simple. The classes linked here run under windows, I've
tested them with several compilers. Note: these classes are 32-bit
windows classes, e.g., not for Turbo 3.0. There are versions of these
classes that run under Linux/Unix, see my book page for a link to the
code.
Here's a function that prints all the entries, both files and
subdirectories, in the directory dirName.
void PrintDir(const apstring& dirName)
{
DirStream input(dirName);
for(input.Init(); input.HasMore(); input.Next())
{
DirEntry entry = input.Current();
cout << entry.Name() << "\t" << entry.Size() << endl;
}
}
That's it! The function prints the names of every file/subdirectory and
the file size. For recursion, the program subdir.cpp prints everything, all the way down:
subdirectories and their contents, and their subdirectory contents and
so on.
The class implementations are here:
Owen L. Astrachan
Last modified: Tue May 11 19:48:16 EDT 1999