#ifndef _RECURSEDIR_H #define _RECURSEDIR_H #include #include #include #include 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 dirstack; }; #endif