本文介紹基於 GNU gzip 1.2.4a 原始碼封裝的 CZip/CUnzip 類庫,提供簡潔的 C++ 介面實現檔案壓縮與解壓縮,遵循 GPL 授權條款。
CZip(壓縮)、CUnzip(解壓縮)SwapSize(const char* destFileName) — 執行壓縮/解壓縮CZipException,透過 GetString() 取得錯誤訊息czip.hzipdll.lib(隱含連結 zipdll.dll)zipdll.dll 放置於執行檔同目錄LoadLibrary/GetProcAddress(未測試)try {
CZip myFileToZip("source_file.txt");
myFileToZip.SwapSize("compressed.gz");
} catch (CZipException e) {
cout << "壓縮失敗: " << e.GetString() << endl;
delete &e; // 注意:捕獲參考時不需 delete,此處原始碼可能筆誤
}
try {
CUnzip myFileToUnzip("compressed.gz");
myFileToUnzip.SwapSize("decompressed.txt");
} catch (CZipException e) {
cout << "解壓縮失敗: " << e.GetString() << endl;
}
.zip,否則 WinZip 無法開啟(格式為 gzip 非 zip)。建議用 .gzCUnzip 解開基於 gzip GNU 原始碼,遵循 GPL (General Public License)。詳細條款參考:GNU GPL 中文版
完整類庫原始碼、DLL、範例專案已附於配套資源。