⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.hpp

📁 7Zip软件实现: 七种编码格式的压缩与解压缩功能。
💻 HPP
字号:
#ifndef _RAR_FILE_#define _RAR_FILE_#ifdef _WIN_32typedef HANDLE FileHandle;#define BAD_HANDLE INVALID_HANDLE_VALUE#elsetypedef FILE* FileHandle;#define BAD_HANDLE NULL#endifclass RAROptions;enum FILE_HANDLETYPE {FILE_HANDLENORMAL,FILE_HANDLESTD,FILE_HANDLEERR};enum FILE_ERRORTYPE {FILE_SUCCESS,FILE_NOTFOUND,FILE_READERROR};struct FileStat{  uint FileAttr;  uint FileTime;  Int64 FileSize;  bool IsDir;};class File{  private:    void AddFileToList(FileHandle hFile);    FileHandle hFile;    bool LastWrite;    FILE_HANDLETYPE HandleType;    bool SkipClose;    bool IgnoreReadErrors;    bool NewFile;    bool AllowDelete;    bool AllowExceptions;#ifdef _WIN_32    bool NoSequentialRead;#endif  protected:    bool OpenShared;  public:    char FileName[NM];    wchar FileNameW[NM];    FILE_ERRORTYPE ErrorType;    uint CloseCount;  public:    File();    virtual ~File();    void operator = (File &SrcFile);    bool Open(const char *Name,const wchar *NameW=NULL,bool OpenShared=false,bool Update=false);    void TOpen(const char *Name,const wchar *NameW=NULL);    bool WOpen(const char *Name,const wchar *NameW=NULL);    bool Create(const char *Name,const wchar *NameW=NULL);    void TCreate(const char *Name,const wchar *NameW=NULL);    bool WCreate(const char *Name,const wchar *NameW=NULL);    bool Close();    void Flush();    bool Delete();    bool Rename(const char *NewName);    void Write(const void *Data,int Size);    int Read(void *Data,int Size);    int DirectRead(void *Data,int Size);    void Seek(Int64 Offset,int Method);    bool RawSeek(Int64 Offset,int Method);    Int64 Tell();    void Prealloc(Int64 Size);    byte GetByte();    void PutByte(byte Byte);    bool Truncate();    void SetOpenFileTime(RarTime *ftm,RarTime *ftc=NULL,RarTime *fta=NULL);    void SetCloseFileTime(RarTime *ftm,RarTime *fta=NULL);    static void SetCloseFileTimeByName(const char *Name,RarTime *ftm,RarTime *fta);    void SetOpenFileStat(RarTime *ftm,RarTime *ftc,RarTime *fta);    void SetCloseFileStat(RarTime *ftm,RarTime *fta,uint FileAttr);    void GetOpenFileTime(RarTime *ft);    bool IsOpened() {return(hFile!=BAD_HANDLE);};    Int64 FileLength();    void SetHandleType(FILE_HANDLETYPE Type);    FILE_HANDLETYPE GetHandleType() {return(HandleType);};    bool IsDevice();    void fprintf(const char *fmt,...);    static bool RemoveCreated();    FileHandle GetHandle() {return(hFile);};    void SetIgnoreReadErrors(bool Mode) {IgnoreReadErrors=Mode;};    char *GetName() {return(FileName);}    long Copy(File &Dest,Int64 Length=INT64ERR);    void SetAllowDelete(bool Allow) {AllowDelete=Allow;}    void SetExceptions(bool Allow) {AllowExceptions=Allow;}#ifdef _WIN_32    void RemoveSequentialFlag() {NoSequentialRead=true;}#endif};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -