1. 程式人生 > >Qt中用QuaZip來壓縮和解壓縮檔案

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();
}