00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkDirectory_h
00018 #define __itkDirectory_h
00019
00020 #include "itkObject.h"
00021 #include "itkObjectFactory.h"
00022 #include <iostream>
00023 #include <string>
00024 #include <vector>
00025
00026 namespace itk
00027 {
00039 class ITKCommon_EXPORT Directory : public Object
00040 {
00041 public:
00043 typedef Directory Self;
00044 typedef Object Superclass;
00045 typedef SmartPointer<Self> Pointer;
00046 typedef SmartPointer<const Self> ConstPointer;
00047
00049 static Pointer New()
00050 { Pointer n = new Self; n->UnRegister(); return n; }
00051
00053 itkTypeMacro(Directory,Object);
00054
00058 bool Load(const char* dir);
00059
00061 std::vector<std::string>::size_type GetNumberOfFiles() { return m_Files.size();}
00062
00064 const char* GetFile(unsigned int index);
00065
00066 protected:
00067 Directory();
00068 ~Directory() ;
00069 virtual void PrintSelf(std::ostream& os, Indent indent) const;
00070
00071 private:
00072 Directory(const Self&);
00073 void operator=(const Self&);
00074
00075 std::vector<std::string> m_Files;
00076 std::string m_Path;
00077 };
00078
00079 }
00080
00081 #endif