00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef zz_file_h
00010 #define zz_file_h
00011
00012 #include <zz_export.h>
00013 #include <stdio.h>
00014
00015 #ifdef _WIN32
00016 #include <io.h>
00017 #include <conio.h>
00018 #include <sys\types.h>
00019 #include <sys\stat.h>
00020 #include <windows.h>
00021 #else
00022 #include <sys/types.h>
00023 #include <sys/stat.h>
00024 #include <unistd.h>
00025 #endif
00026
00027 #include <time.h>
00028 #include <stdio.h>
00029 #include <fcntl.h>
00030 #include <malloc.h>
00031 #include <errno.h>
00032 #include <zz_string.h>
00033 #include <zz_exception.h>
00034
00035
00036 #ifdef _REMOTECOPY
00037 extern "C"
00038 {
00039 #include <dsrcpdll.h>
00040 }
00041 #endif
00042
00043
00044 #define BUFFLEN 16*1024
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 class ZZ_API CzzFile
00060 {
00061
00062 public:
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 CzzFile( const char* path
00073 );
00074
00075
00076
00077 ~CzzFile();
00078
00079
00080 size_t Size( void );
00081
00082
00083 time_t Time( void );
00084
00085
00086 void Open( const char* mode
00087 );
00088
00089 size_t Read( void* p,
00090 size_t size
00091 );
00092
00093
00094 size_t Write( void* p,
00095 size_t size
00096 );
00097
00098
00099 void Close( void );
00100
00101
00102 bool Exist( void );
00103
00104
00105 void CopyTo( const char* path
00106 );
00107
00108 FILE* GetHandle( void );
00109
00110 #ifdef _REMOTECOPY
00111
00112
00113
00114 void RemoteCopy( const char* url
00115 );
00116 #endif
00117
00118
00119 void Rename( const char* newname
00120 );
00121
00122
00123 void Delete( void );
00124
00125
00126 CzzString& GetPath( void );
00127
00128
00129 void SetPath( const char* path );
00130
00131 protected:
00132
00133 FILE* m_Handle;
00134 CzzString m_Path;
00135 CzzString m_Mode;
00136 bool m_Open;
00137 size_t m_Size;
00138 time_t m_Time;
00139
00140 private:
00141 int Copy( const char *source, const char *target );
00142 };
00143
00144 #endif // zz_file_h
00145
00146
00147