VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkDirectory.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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 vtkTypeMacro(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 vtkIdType GetNumberOfFiles(); 00056 00058 const char* GetFile(vtkIdType 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 //BTX 00095 VTK_LEGACY(static int CreateDirectoryA(const char* dir)); 00096 VTK_LEGACY(static int CreateDirectoryW(const char* dir)); 00097 //ETX 00098 #endif 00099 00100 protected: 00101 // delete the Files and Path ivars and set 00102 // NumberOfFiles to 0 00103 void CleanUpFilesAndPath(); 00104 vtkDirectory(); 00105 ~vtkDirectory() ; 00106 00107 private: 00108 char* Path; // Path to Open'ed directory 00109 vtkStringArray *Files; // VTK array of files 00110 00111 static int CreateDirectoryInternal(const char* dir); 00112 00113 private: 00114 vtkDirectory(const vtkDirectory&); // Not implemented. 00115 void operator=(const vtkDirectory&); // Not implemented. 00116 }; 00117 00118 #endif