Qt中用QuaZip來壓縮和解壓縮檔案
1、簡介
QuaZIP是使用Qt,C++對ZLIB進行簡單封裝的用於壓縮ZIP以及解壓縮ZIP的開源庫。如果你的Qt專案當中用到了壓縮以及解壓縮ZIP的話你可以考慮選擇使用它。
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(); }