GDCM
2.0.18
|
00001 /*========================================================================= 00002 00003 Program: GDCM (Grassroots DICOM). A DICOM library 00004 00005 Copyright (c) 2006-2011 Mathieu Malaterre 00006 All rights reserved. 00007 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notice for more information. 00012 00013 =========================================================================*/ 00014 #ifndef GDCMFILENAME_H 00015 #define GDCMFILENAME_H 00016 00017 #include "gdcmTypes.h" 00018 00019 #include <string> 00020 00021 namespace gdcm 00022 { 00027 class GDCM_EXPORT Filename 00028 { 00029 public: 00030 Filename(const char* filename = ""):FileName(filename ? filename : ""),Path(),Conversion() {} 00031 00033 const char *GetFileName() const { return FileName.c_str(); } 00035 const char *GetPath(); 00037 const char *GetName(); 00039 const char *GetExtension(); 00041 const char *ToUnixSlashes(); 00043 const char *ToWindowsSlashes(); 00044 00047 static const char *Join(const char *path, const char *filename); 00048 00050 bool IsEmpty() const { return FileName.empty(); } 00051 00055 operator const char * () const { return GetFileName(); } 00056 00057 // FIXME: I don't like this function 00058 // It hides the realpath call (maybe usefull) 00059 // and it forces file to exist on the disk whereas Filename 00060 // should be independant from file existence. 00061 bool IsIdentical(Filename const &fn) const; 00062 00063 private: 00064 std::string FileName; 00065 std::string Path; 00066 std::string Conversion; 00067 }; 00068 00069 } // end namespace gdcm 00070 00071 #endif //GDCMFILENAME_H