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表示待解壓縮的文件
第二個參數表示解壓縮存放的目錄
下面給出程序代碼例子:
- #include <QCoreApplication>
- #include "JlCompress.h"
- int main(int argc, char *argv[])
- {
- QCoreApplication a(argc, argv);
- JlCompress::compressDir("d:\\test.zip", "d:\\test"); //壓縮
- JlCompress::extractDir("d:\\test.zip", "d:\\test");//解壓縮
- return a.exec();
- }