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
00033
00034
00035
00036
00037
00038
00039 #ifndef Foundation_File_WIN32U_INCLUDED
00040 #define Foundation_File_WIN32U_INCLUDED
00041
00042
00043 #include "Poco/Foundation.h"
00044 #include "Poco/Timestamp.h"
00045
00046
00047 namespace Poco {
00048
00049
00050 class Foundation_API FileImpl
00051 {
00052 protected:
00053 typedef UInt64 FileSizeImpl;
00054
00055 FileImpl();
00056 FileImpl(const std::string& path);
00057 virtual ~FileImpl();
00058 void swapImpl(FileImpl& file);
00059 void setPathImpl(const std::string& path);
00060 const std::string& getPathImpl() const;
00061 bool existsImpl() const;
00062 bool canReadImpl() const;
00063 bool canWriteImpl() const;
00064 bool canExecuteImpl() const;
00065 bool isFileImpl() const;
00066 bool isDirectoryImpl() const;
00067 bool isLinkImpl() const;
00068 bool isDeviceImpl() const;
00069 bool isHiddenImpl() const;
00070 Timestamp createdImpl() const;
00071 Timestamp getLastModifiedImpl() const;
00072 void setLastModifiedImpl(const Timestamp& ts);
00073 FileSizeImpl getSizeImpl() const;
00074 void setSizeImpl(FileSizeImpl size);
00075 void setWriteableImpl(bool flag = true);
00076 void setExecutableImpl(bool flag = true);
00077 void copyToImpl(const std::string& path) const;
00078 void renameToImpl(const std::string& path);
00079 void removeImpl();
00080 bool createFileImpl();
00081 bool createDirectoryImpl();
00082 static void handleLastErrorImpl(const std::string& path);
00083
00084 private:
00085 std::string _path;
00086 std::wstring _upath;
00087
00088 friend class FileHandle;
00089 friend class DirectoryIteratorImpl;
00090 };
00091
00092
00093
00094
00095
00096 inline const std::string& FileImpl::getPathImpl() const
00097 {
00098 return _path;
00099 }
00100
00101
00102 }
00103
00104
00105 #endif // Foundation_File_WIN32U_INCLUDED