00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00028 #ifndef __vtkDirectory_h
00029 #define __vtkDirectory_h
00030
00031 #include "vtkObject.h"
00032
00033 class vtkStringArray;
00034
00035 class VTK_COMMON_EXPORT vtkDirectory : public vtkObject
00036 {
00037 public:
00039
00040 vtkTypeRevisionMacro(vtkDirectory,vtkObject);
00042
00044 static vtkDirectory *New();
00045
00047 virtual void PrintSelf(ostream& os, vtkIndent indent);
00048
00052 int Open(const char* dir);
00053
00055 int GetNumberOfFiles();
00056
00058 const char* GetFile(int index);
00059
00064 int FileIsDirectory(const char *name);
00065
00067
00068 vtkGetObjectMacro(Files, vtkStringArray);
00070
00072 static const char* GetCurrentWorkingDirectory(char* buf, unsigned int len);
00073
00075 static int MakeDirectory(const char* dir);
00076
00078 static int DeleteDirectory(const char* dir);
00079
00081 static int Rename(const char* oldname, const char* newname);
00082
00083 #ifdef VTK_WORKAROUND_WINDOWS_MANGLE
00084 # define CreateDirectoryA CreateDirectory
00085 # define CreateDirectoryW CreateDirectory
00086 #endif
00087
00089 VTK_LEGACY(static int CreateDirectory(const char* dir));
00090
00091 #ifdef VTK_WORKAROUND_WINDOWS_MANGLE
00092 # undef CreateDirectoryW
00093 # undef CreateDirectoryA
00094
00095 VTK_LEGACY(static int CreateDirectoryA(const char* dir));
00096 VTK_LEGACY(static int CreateDirectoryW(const char* dir));
00097
00098 #endif
00099
00100 protected:
00101
00102
00103 void CleanUpFilesAndPath();
00104 vtkDirectory();
00105 ~vtkDirectory() ;
00106
00107 private:
00108 char* Path;
00109 vtkStringArray *Files;
00110
00111 static int CreateDirectoryInternal(const char* dir);
00112
00113 private:
00114 vtkDirectory(const vtkDirectory&);
00115 void operator=(const vtkDirectory&);
00116 };
00117
00118 #endif