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 VTK_COMMON_EXPORT vtkDirectory : public vtkObject
00034 {
00035 public:
00037
00038 vtkTypeRevisionMacro(vtkDirectory,vtkObject);
00040
00042 static vtkDirectory *New();
00043
00045 virtual void PrintSelf(ostream& os, vtkIndent indent);
00046
00050 int Open(const char* dir);
00051
00053 int GetNumberOfFiles() { return this->NumberOfFiles; }
00054
00056 const char* GetFile(int index);
00057
00059 static const char* GetCurrentWorkingDirectory(char* buf, unsigned int len);
00060
00063 static int MakeDirectory(const char* dir);
00064
00065 #ifdef VTK_WORKAROUND_WINDOWS_MANGLE
00066 # define CreateDirectoryA CreateDirectory
00067 # define CreateDirectoryW CreateDirectory
00068 #endif
00069
00071 VTK_LEGACY(static int CreateDirectory(const char* dir));
00072
00073 #ifdef VTK_WORKAROUND_WINDOWS_MANGLE
00074 # undef CreateDirectoryW
00075 # undef CreateDirectoryA
00076
00077 VTK_LEGACY(static int CreateDirectoryA(const char* dir));
00078 VTK_LEGACY(static int CreateDirectoryW(const char* dir));
00079
00080 #endif
00081
00082 protected:
00083
00084
00085 void CleanUpFilesAndPath();
00086 vtkDirectory();
00087 ~vtkDirectory() ;
00088 private:
00089 char* Path;
00090 char** Files;
00091 int NumberOfFiles;
00092
00093 static int CreateDirectoryInternal(const char* dir);
00094 private:
00095 vtkDirectory(const vtkDirectory&);
00096 void operator=(const vtkDirectory&);
00097 };
00098
00099 #endif