Qt中用QuaZip來壓縮和解壓縮文件


1、簡介

QuaZIP是使用Qt,C++對ZLIB進行簡單封裝的用於壓縮ZIP以及解壓縮ZIP的開源庫。如果你的Qt項目當中用到了壓縮以及解壓縮ZIP的話你可以考慮選擇使用它。

官方主頁:http://quazip.sourceforge.net/

souceforge下載地址:http://sourceforge.net/projects/quazip/

2、編譯

QuaZip是基於Zlib庫的,編譯前要導入zlib的頭文件,編譯后會生成quazip.lib和quazip.dll文件(用的是vs)

如果用Qt來編譯,直接編譯會報錯,需要添加zlib.h的包含目錄,在quazip/quazip.pro文件中添加INCLUDEPATH += "qt源碼目錄\src\qtbase\src\3rdparty\zlib"

同時將quazip.pro文件中的SUBDIRS = quazip qztest注釋,換成SUBDIRS = quazip,選擇“重新構建”會生成libquazipd.a和quazipd.dll

3、應用

在自己新建的工程中將quazip.lib所在庫目錄,頭文件所在的目錄添加到工程。

用QuaZip中的JlCompress類來壓縮和解壓縮文件

靜態方法壓縮文件

static bool compressDir(QString fileCompressed, QString dir=QString(), bool recursive = true)

第一個參數fileCompressed表示壓縮后的文件

第二個參數dir表示待壓縮的目錄

第三個參數recursive表示是否遞歸

解壓縮用靜態方法:extractDir

static QStringList extractDir(QString fileCompressed, QString dir=QString())

第一個參數fileCompressed表示待解壓縮的文件

第二個參數表示解壓縮存放的目錄

下面給出程序代碼例子:

 

[cpp]  view plain  copy
 
  1. #include <QCoreApplication>  
  2. #include "JlCompress.h"  
  3.   
  4.   
  5.   
  6. int main(int argc, char *argv[])  
  7. {  
  8.     QCoreApplication a(argc, argv);  
  9.   
  10.     JlCompress::compressDir("d:\\test.zip", "d:\\test"); //壓縮  
  11.     JlCompress::extractDir("d:\\test.zip", "d:\\test");//解壓縮  
  12.     return a.exec();  
  13. }  

 

 

 

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM