Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef FileH
00033 #define FileH
00034
00035 #include <zeusbase/System/String.h>
00036 #include <zeusbase/System/ZObject.h>
00037 #include <sys/stat.h>
00038
00039 BEGIN_NAMESPACE_Zeus
00040
00041 class TDirectoryItem;
00042
00043
00046
00047 zeusbase_class TFile : public TZObject
00048 {
00049 public:
00050 TFile(const IString& rAbsName);
00051 TFile(const TDirectoryItem& rItem);
00052 TFile(TString strAbsName);
00053 TFile(const IString& rFileRootPath, const IString& rFileName);
00054 TFile(const TFile& rFile);
00055 virtual ~TFile();
00056
00057 TString getAbsoluteName() const;
00058 TString extractFileName() const;
00059 TString extractFileExt() const;
00060 TString extractFileNameBase() const;
00061 TString extractFilePath() const;
00062 bool deleteFile(bool bForce = false);
00063 bool canWrite() const;
00064 bool canRead() const;
00065 bool exists() const;
00066 bool createEmptyFile() const;
00067 bool equals(const TFile& rFile) const;
00068 bool equals(const IString& rFileName) const;
00069 Int64 getSize() const;
00070 Timeval getCreationTime() const;
00071 Timeval getLastAccessTime() const;
00072 Timeval getModificationTime() const;
00073 bool copyTo(const IString& rTargetName) const;
00074 bool setReadOnly(bool bValue);
00075 void createBackupFiles(Uint uiBackupNum);
00076 bool refresh();
00077 void splitPath(IString& rDrive, IString& rDirectory, IString& rFileName, IString& rExtension);
00078 bool matchesPattern(const TString& rPattern);
00079 void simplifyPathName(bool* pbError = NULL);
00080
00081
00082 TString getFileVersion() const;
00083 TString getFileInformation(const IString& rEntryName) const;
00084
00085
00086 TString toString() const;
00087
00088
00089 TFile& operator=(const TFile& rFile);
00090 bool operator==(const TFile& rFile) const;
00091 bool operator==(const TString& rFile) const;
00092 bool operator!=(const TFile& rFile) const;
00093 bool operator!=(const TString& rFile) const;
00094
00095
00096 static bool isFile(const IString& rDirectoryItem);
00097 static bool isDirectory(const IString& rDirectoryItem);
00098 static bool isHidden(const IString& rDirectoryItem);
00099 static TString createAbsoluteFileNamePath(const IString& rFileName, const IString& rPathToComplete);
00100 static bool matchesPattern(const TString& rFileName, const TString& rPattern);
00101
00102 protected:
00104 TString m_strAbsName;
00105
00106 private:
00108 #if defined(ENABLE_LINUX_BINDING)
00109 struct stat m_StatBuffer;
00110 #else
00111 struct _stat m_StatBuffer;
00112 #endif
00113
00114
00115 bool m_bStatusRead;
00116
00117 static Int findLastPos(const TString& strItem, wchar_t wcChar);
00118 };
00119
00120
00121
00122
00125
00126 inline TString TFile::toString() const
00127 {
00128 return m_strAbsName;
00129 }
00130
00131
00134
00135 inline TString TFile::getAbsoluteName() const
00136 {
00137 return m_strAbsName;
00138 }
00139
00140
00143
00144 inline bool TFile::matchesPattern(const TString& rPattern)
00145 {
00146 return TFile::matchesPattern(m_strAbsName, rPattern);
00147 }
00148
00149
00156
00157 inline bool TFile::equals(const TFile& rFile) const
00158 {
00159 return equals(rFile.m_strAbsName);
00160 }
00161
00162
00165
00166 inline bool TFile::operator==(const TFile& rFile) const
00167 {
00168 return this->equals(rFile);
00169 }
00170
00171
00174
00175 inline bool TFile::operator==(const TString& rFile) const
00176 {
00177 return this->equals(rFile);
00178 }
00179
00180
00183
00184 inline bool TFile::operator!=(const TFile& rFile) const
00185 {
00186 return !this->equals(rFile);
00187 }
00188
00189
00192
00193 inline bool TFile::operator!=(const TString& rFile) const
00194 {
00195 return !this->equals(rFile);
00196 }
00197
00198
00202
00203 inline TString TFile::getFileVersion() const
00204 {
00205 return getFileInformation(TString(L"FileVersion"));
00206 }
00207
00208
00209
00213
00214 inline bool TFile::isFile(const IString& rDirectoryItem)
00215 {
00216 return !TFile::isDirectory(rDirectoryItem);
00217 }
00218
00219 END_NAMESPACE_Zeus
00220
00221 #endif