FileTraverser.h++
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __ccxx_FileTraverser_hxx
00024 #define __ccxx_FileTraverser_hxx
00025
00026 #include <commonc++/FileName.h++>
00027 #include <commonc++/IOException.h++>
00028 #include <commonc++/RegExp.h++>
00029 #include <commonc++/String.h++>
00030
00031 namespace ccxx {
00032
00041 class COMMONCPP_API FileTraverser
00042 {
00043 public:
00044
00051 FileTraverser(const String &basePath, bool depthFirst = true);
00052
00054 virtual ~FileTraverser() throw();
00055
00062 inline void setPrunePattern(const RegExp& pattern)
00063 { _prunePattern = pattern; }
00064
00070 bool traverse();
00071
00072 protected:
00073
00082 virtual bool processFile(const FileName& name, bool isDir, uint_t depth) = 0;
00083
00093 virtual bool handleError(const FileName& name, const IOException& ex);
00094
00095 private:
00096
00097 bool _traverse(FileName& filename, uint_t depth);
00098
00099 String _baseDir;
00100 bool _depthFirst;
00101 RegExp _prunePattern;
00102 };
00103
00104 };
00105
00106 #endif // __ccxx_FileTraverser_hxx
00107
00108