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

📄 bzip.h

📁 手机数据备份软件
💻 H
字号:
// BZIP.H: INTERFACE FOR THE CBZIP CLASS.
//      A FREE COMPRESS/DECOMPRESS SOFTWARE LIKE WINZIP 
//      BY YANXINHAI YANXH@MIC.COM.TW
// PLS LET ME KNOW IF YOU FIND ANY BUGS ABOUT IT. :)
//////////////////////////////////////////////////////////////////////
///////////////////////NOTICE/////////////////////////////////////////
//
// FUNCTION: 
//     1.IMPLEMENT SIGLE OR MULTIPLE FILE COMPRESS AND DECOMPRESS
//     2.IMPLEMENT FILE TO BUFFER COMPRESS/DECOMPRESS
//     3.IMPLEMENT FIRST LEVEL EMPTY DIRECTORY COMPRESS/DECOMPRESS
//     4.IMPLEMENT BUFFER TO BUFFER COMPRESS/DECOMPRESS
//     5.IMPLEMENT DIRECTORY COMPRESS/DECOMPRESS (NEW)
// VERSION: 1.0   CREATE TIME: 2002-07-18
// VERSION: 1.1   MODIFIED TIME:2002-7-22 ADD DIRECTORY COMPRESS/DECOMPRESS
//////////////////////////////////////////////////////////////////////
#ifndef _BZIP_H_
#define _BZIP_H_

#include "File.h"
#include "bzlib.h"
//////////////////////////////////////////////////////////////////////
//------------------ Data structure defined--------------------------
typedef struct
{
	DWORD	  dwOriginFileSize;         //Original size of file
	DWORD     dwZipFileSize;            //Compressed size of file
	DWORD     dwFileAttributes;         //attributes of file
	FILETIME  ftCreateTime;             //Create time of file 
	FILETIME  ftLastModifiedTime;		//Last Written time of file
	FILETIME  ftLastAccessedTime;		//Last Accessed time of file
	WORD	  wRealFilePathNameLen;	    //Real size of full-path name
	TCHAR      szFilePathName[MAX_PATH]; //buffer for file path name
}BZFILEDATA,*LPBZFILEDATA;
//-------------------Data Structure End------------------------------

///////////////////////////////////////////////////////////////////////
//------------------Class define--------------------------------
class CBzip  
{
public:
///////FILE/DIRECTORY Operation/////////
	BOOL Initialize(LPCTSTR szBzipDllName);
	virtual	BOOL AddToArchive(CFile &cTargetFile,BZFILEDATA &pBFHeader);
	BOOL AddDirToArchive(CFile&cFile ,LPCTSTR szDirName);
	virtual BOOL ExtractArchive(LPCTSTR szZipFileName);
	BOOL DeCompress(LPCSTR szSource,LPCSTR szTarget);
	BOOL Compress(LPCSTR szSource,LPCSTR szTarget,int nLevel = 9);
	BOOL BufferDeCompress(char *szDestBuf, UINT *nDestLen, char *szSource, UINT nSourceLen);
	BOOL BufferCompress(char * szDestBuf,UINT *nDestLen,char *szSource,UINT nSourceLen,int nLevel = 9);
	BOOL ZipFileToBuffer(LPCSTR szFileName, char *buffer,int& nLen);
	BOOL ExtractBufferToFile(LPCTSTR szFileName,char *buffer,UINT nLen,BZFILEDATA *pszFileBuffer=NULL);
	BOOL WriteFileToZip(LPCTSTR szSource,CFile &cTarget);
	BOOL IsExistedDirectory(LPCTSTR szDirectory);
	BOOL IsEmptyDirectory(LPCTSTR szDirectory);
protected:	
	virtual void OnExtractProgress( LPCTSTR szExtractFile,DWORD nErr);	
	BOOL CreateDir(LPCTSTR szDirName);
public:	
	CBzip();
	virtual ~CBzip();
	BOOL m_FirstDirFlag;
private:
	HINSTANCE m_hDllInstance;
	BOOL m_bHasZipFlag;
	void * (WINAPI *bzopen)(const char *,const char *);
	int	   (WINAPI *bzread)(void *,void *,int );
	int	   (WINAPI *bzwrite)(void *,void *,int );
	void   (WINAPI *bzclose)(void * );
	int    (WINAPI *bzBuffToBuffCompress)( char*,unsigned int*,char*,unsigned int,int,int,int);
    int    (WINAPI *bzBuffToBuffDecompress) ( char*,unsigned int*,char*, unsigned int,int,int);
};
//------------------Class End--------------------------------
#endif //_BZIP_H_

⌨️ 快捷键说明

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