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
00076 static int MakeDirectory(const char* dir);
00077
00078 #ifdef VTK_WORKAROUND_WINDOWS_MANGLE
00079 # define CreateDirectoryA CreateDirectory
00080 # define CreateDirectoryW CreateDirectory
00081 #endif
00082
00084 VTK_LEGACY(static int CreateDirectory(const char* dir));
00085
00086 #ifdef VTK_WORKAROUND_WINDOWS_MANGLE
00087 # undef CreateDirectoryW
00088 # undef CreateDirectoryA
00089
00090 VTK_LEGACY(static int CreateDirectoryA(const char* dir));
00091 VTK_LEGACY(static int CreateDirectoryW(const char* dir));
00092
00093 #endif
00094
00095 protected:
00096
00097
00098 void CleanUpFilesAndPath();
00099 vtkDirectory();
00100 ~vtkDirectory() ;
00101
00102 private:
00103 char* Path;
00104 vtkStringArray *Files;
00105
00106 static int CreateDirectoryInternal(const char* dir);
00107
00108 private:
00109 vtkDirectory(const vtkDirectory&);
00110 void operator=(const vtkDirectory&);
00111 };
00112
00113 #endif