Dir.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_Dir_hxx
00024 #define __ccxx_Dir_hxx
00025
00026 #include <commonc++/Common.h++>
00027 #include <commonc++/File.h++>
00028 #include <commonc++/IOException.h++>
00029 #include <commonc++/String.h++>
00030
00031 #ifdef CCXX_OS_POSIX
00032 #include <dirent.h>
00033 #endif
00034
00035 namespace ccxx {
00036
00043 class COMMONCPP_API Dir
00044 {
00045 public:
00046
00051 Dir(const String &path);
00052
00054 ~Dir() throw();
00055
00065 void open(bool listHidden = false, bool listDot = false)
00066 throw(IOException);
00067
00071 void close() throw();
00072
00078 void rewind() throw(IOException);
00079
00081 inline bool isOpen() const throw()
00082 { return(_open); }
00083
00097 bool nextFile(String& name, FileAttributes& attrib,
00098 bool fetchPermissions = false);
00099
00100 private:
00101
00102 String _path;
00103 bool _open;
00104 bool _hidden;
00105 bool _dot;
00106
00107 #ifdef CCXX_OS_WINDOWS
00108 String _pspec;
00109 HANDLE _dir;
00110 WIN32_FIND_DATA _findData;
00111 #else
00112 DIR *_dir;
00113 #endif
00114
00115 CCXX_COPY_DECLS(Dir);
00116 };
00117
00118 };
00119
00120 #endif // __ccxx_Dir_hxx
00121
00122