InfoZip是一個功能強大的免費ZIP/UNZIP庫。為了方便它的使用,本文將介紹一個InfoZip的打包類CInfoZip,這個類本身並不實現壓縮功能,只是提供一個易於使用的InfoZip DLLs接口(包含在CInfoZip中)
CInfoZip類的使用方法:
1、將CInfoZip 的頭文件和實現文件添加到工程中,然後將ZIPDLL.DLL 和UNZDLL.DLL 文件拷到EXE文件所在的目錄。 ZIPDLL.DLL用於壓縮,UNZDLL.DLL用於解壓縮。
2、在代碼中創建CInfoZip 類對象並添加初始化方法調用:
BOOL CInfoZip::InitializeZip();
BOOL CInfoZip::InitializeUnzip();
BOOL CInfoZip::Initialize();
前面兩個方法加載InfoZip DLLs,並獲取指向所用過程的指針,如果成功則返回TRUE,否則返回FALSE。最後一個方法初始化ZIP 和UnZIP 兩個DLL。
3、往壓縮文檔添加文件或解壓縮:
BOOL CInfoZip::AddFiles(const char *pszArchive, char **paFiles, int iFileCount);
BOOL CInfoZip::ExtractFiles(const char *pszArchive, const char * pszTargetFolder);
pszArchive 位一個空結尾串,包含壓縮文檔的全路徑名,paFiles 是一個空結尾串數組,包含待全路經的文件名,iFileCount 是paFiles 數組中的文件數,pszTargetFolder 是一個文件夾全路經,用來存放解壓縮後的文件。
4、使用帶預定義參數設置的壓縮和解壓縮方法:
BOOL CInfoZip::SetDefaultValues(CZipParams *pParams);
BOOL CInfoZip::SetDefaultValues(CUnzipParams *pParams);
如果你要實現由不同參數的ZIP/UNZIP操作,必須創建一個CZipParams/CUnzipParams類型的結構,用相應的值填充此結構(調用SetDefaultParams改變某些結構成員),然後調用CInfoZip::Execute方法:
BOOL CInfoZip::Execute(CZipParams *pParams);
BOOL CInfoZip::Execute(CUnzipParams *pParams);
5、處理完CInfoZip之後,調用下面的方法釋放分配的資源以及加載的DLLs:
BOOL CInfoZip::FinalizeZip();
BOOL CInfoZip::FinalizeUnzip();
BOOL CInfoZip::Finalize();
本文配套源碼