12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #ifndef _RECURSEDIR_H
- #define _RECURSEDIR_H
- #include <bfc/wasabi_std.h>
- #include <bfc/ptrlist.h>
- #include <bfc/common.h>
- #include <bfc/file/readdir.h>
- class ReadDir;
- /**
- Read the contents of a directory, recursively.
- Also possible to use search match patterns.
-
- @short Recursive directory reading.
- @author Nullsoft
- @ver 1.0
- @see ReadDir
- */
- class RecurseDir {
- public:
- /**
- Sets the directory to read and the match pattern.
- If no match pattern is set, it will match against
- all files.
-
- @param path The path of the directory to read.
- @param match The match pattern to use.
- */
- RecurseDir(const wchar_t *path, const wchar_t *match=NULL);
-
- /**
- Deletes the directory stack.
- */
- ~RecurseDir();
- /**
- Advance to the next file.
-
- @ret 0, No more files to read; > 0, Files left to read.
- */
- int next();
-
- /**
- Restart from the top of the directory tree.
-
- @ret 0
- */
- int restart();
- /**
- Get the current directory path.
-
- @ret The path.
- */
- const wchar_t *getPath();
-
- /**
- Get the filename for the current file.
-
- @ret The filename.
- */
- const wchar_t *getFilename();
- const wchar_t *getOriginalPath();
- private:
- StringW path, match;
- ReadDir *curdir;
- PtrList<ReadDir> dirstack;
- };
- #endif
|