程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 如何用CZip/CUnzip類壓縮/解壓縮文件

如何用CZip/CUnzip類壓縮/解壓縮文件

編輯:關於C++

本文介紹如何用CZip/CUnzip類壓縮/解壓縮文件,這個類使用gzip GNU源代碼(gzip-1.2.4a)。這是個免費軟件,在GUN通用公共許可證(General Public License)條款下可以分發及修改此軟件,關於這個通用公共許可證的詳細條款請參考:

http://www.vckbase.com/vckbase/uniondocs/gungpl.htm

目標動態庫輸出兩個類:

CZip(用於壓縮文件)

CUnzip (用於解壓縮文件)

首先用文件名建立CZip 或 CUnzip 對象。然後,壓縮和解壓縮都必須調用對象的 SwapSize() 方法,參數是目標文件名。如果調用出錯,SwapSize()可以丟出CZipException異常。與異常相關的信息可以用GetStringt方法來獲得,以下幾種情況都會產生異常:

--源文件不存在或無法以讀方式打開文件

--無法創建目標文件。例如,這個文件已經存在

--gzip代碼返回一個錯誤,在這種情況下,與異常相關的信息包含由gzip源代碼通過stderr返回的信息

CZip 或 CUnzip的使用方法如下:

在工程中包含czip.h文件

用zipdll.lib將工程鏈接到zipdll.dll

將zipdll.dll拷到可執行文件所在的目錄

注意:也可以動態鏈接到zipdll.dll(沒有測試過)。下面是使用CZip/CUnzip類的例子代碼段:

try

{

CZip myFileToZip ("file_to_zip_name");

myFileToZip.SwapSize ("file_zipped_name");

}

catch (CZipException e)

{

cout << "problem while zipping : " << e.GetString() << endl;

delete pExcep;

}

注意: 如果想用WinZip來解壓縮,則不能用".zip"作為文件擴展名。否則WinZip無法打開這個文件。 用WinZip壓縮的文檔(只能包含一個文件)可以用CUnzip對象解開。

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved