Qt之zip壓縮/解壓縮(QuaZIP)
阿新 • • 發佈:2017-08-11
com spm c++ ews pen 更多 pri cat markdown
摘要: 簡述 QuaZIP是使用Qt/C++對ZLIB進行簡單封裝的用於壓縮及解壓縮ZIP的開源庫。適用於多種平臺,利用它可以很方便的將單個或多個文件打包為zip文件,且打包後的zip文件可以通過其它工具打開。
簡述
QuaZIP是使用Qt/C++對ZLIB進行簡單封裝的用於壓縮及解壓縮ZIP的開源庫。適用於多種平臺,利用它可以很方便的將單個或多個文件打包為zip文件,且打包後的zip文件可以通過其它工具打開。
Qt中提供了qCompress/qUncompress來進行文件的壓縮與解壓,但存在兩個問題:
- 無法很好地壓縮/解壓縮文件夾。
- 只能將一個文件壓縮為某種格式,壓縮後的文件無法通過其它解壓工具打開(如:7zip,或WinRAR),只能通過qUncompress解壓讀取,也就是說qCompress生成的壓縮文件不包含普通壓縮文件的一些頭信息,導致無法解壓。
- 簡述
- QuaZIP類說明
- 使用
- 接口說明
- 配置
- 壓縮解壓縮
- 更多參考
QuaZIP類說明
類 | 說明 |
---|---|
JlCompress | 典型操作工具類 |
QuaAdler32 | Adler32算法校驗和 |
QuaChecksum32 | 校驗和接口 |
QuaCrc32 | CRC32校驗和 |
QuaGzipFile | GZIP 文件操作 |
QuaZIODevice | 壓縮/解壓 QIODevice |
QuaZip | ZIP 文件 |
QuaZipDir | ZIP文件內目錄導航 |
QuaZipFile | ZIP文件內的文件 |
QuaZipFileInfo | ZIP壓縮包內的文件信息 |
QuaZipFilePrivate | QuaZip的接口 |
QuaZipNewInfo | 被創建的文件信息 |
QuaZipPrivate | QuaZIP內部類 |
使用
接口說明
QuaZip中的JlCompress類用來壓縮和解壓縮文件
/**
壓縮文件夾
參數一fileCompressed:壓縮後的文件
參數二dir:待壓縮的目錄
參數三recursive:是否遞歸
**/
static bool compressDir(QString fileCompressed, QString dir = QString(), bool recursive = true);
/**
解壓縮文件夾
參數一fileCompressed:待解壓縮的文件
參數二fileCompressed:解壓縮存放的目錄
**/
static QStringList extractDir(QString fileCompressed, QString dir = QString());
配置
在工程中將quazip.lib所在庫目錄、頭文件所在的目錄添加到工程中。
pro中添加:
LIBS += -L"D:/quazip/lib" -lquazip
INCLUDEPATH += D:/quazip/src
DEPENDPATH += D:/quazip/src
壓縮/解壓縮
#include <QApplication>
#include "JlCompress.h"
int main(int argc, char **argv)
{
QApplication app(argc,argv);
// 壓縮文件夾
JlCompress::compressDir("F:\\QuaZip.zip", "F:\\QuaZip");
// 解壓縮文件夾
JlCompress::extractDir("F:\\QuaZip.zip", "F:\\ExtractQuaZip");
return app.exec();
Qt之zip壓縮/解壓縮(QuaZIP)