00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef FXFILE_H
00025 #define FXFILE_H
00026
00027 #ifndef FXIO_H
00028 #include "FXIO.h"
00029 #endif
00030
00031
00032 namespace FX {
00033
00034
00035
00036
00037
00038 class FXAPI FXFile : public FXIO {
00039 private:
00040 FXFile(const FXFile&);
00041 FXFile &operator=(const FXFile&);
00042 public:
00043
00044
00045 FXFile(){ }
00046
00047
00048 FXFile(FXInputHandle handle,FXuint mode);
00049
00050
00051 FXFile(const FXString& file,FXuint mode=FXIO::Reading,FXuint perm=FXIO::OwnerReadWrite|FXIO::GroupReadWrite|FXIO::OtherReadWrite);
00052
00053
00054 virtual bool open(const FXString& file,FXuint mode=FXIO::Reading,FXuint perm=FXIO::OwnerReadWrite|FXIO::GroupReadWrite|FXIO::OtherReadWrite);
00055
00056
00057 virtual bool open(FXInputHandle handle,FXuint mode);
00058
00059
00060 virtual FXlong position() const;
00061
00062
00063 virtual FXlong position(FXlong offset,FXuint from=FXIO::Begin);
00064
00065
00066 virtual FXival readBlock(void* data,FXival count);
00067
00068
00069 virtual FXival writeBlock(const void* data,FXival count);
00070
00071
00072 virtual FXlong truncate(FXlong size);
00073
00074
00075 virtual bool flush();
00076
00077
00078 virtual FXlong size();
00079
00080
00081 virtual bool eof();
00082
00083
00084 virtual bool close();
00085
00086
00087
00088 static bool create(const FXString& file,FXuint perm=FXIO::OwnerReadWrite|FXIO::GroupReadWrite|FXIO::OtherReadWrite);
00089
00090
00091 static bool remove(const FXString& file);
00092
00093
00094 static bool rename(const FXString& srcfile,const FXString& dstfile);
00095
00096
00097 static bool link(const FXString& srcfile,const FXString& dstfile);
00098
00099
00100 static FXString symlink(const FXString& file);
00101
00102
00103 static bool symlink(const FXString& srcfile,const FXString& dstfile);
00104
00105
00106 static bool identical(const FXString& file1,const FXString& file2);
00107
00108
00109 static bool copy(const FXString& srcfile,const FXString& dstfile,bool overwrite=false);
00110
00111
00112 static bool concat(const FXString& srcfile1,const FXString& srcfile2,const FXString& dstfile,bool overwrite=false);
00113
00114
00115
00116
00117 static bool copyFiles(const FXString& srcfile,const FXString& dstfile,bool overwrite=false);
00118
00119
00120 static bool moveFiles(const FXString& srcfile,const FXString& dstfile,bool overwrite=false);
00121
00122
00123 static bool removeFiles(const FXString& path,bool recursive=false);
00124
00125
00126 virtual ~FXFile();
00127 };
00128
00129 }
00130
00131 #endif