Qt之zip壓縮/解壓縮(QuaZIP)


 

摘要: 簡述 QuaZIP是使用Qt/C++對ZLIB進行簡單封裝的用於壓縮及解壓縮ZIP的開源庫。適用於多種平台,利用它可以很方便的將單個或多個文件打包為zip文件,且打包后的zip文件可以通過其它工具打開。

簡述

QuaZIP是使用Qt/C++對ZLIB進行簡單封裝的用於壓縮及解壓縮ZIP的開源庫。適用於多種平台,利用它可以很方便的將單個或多個文件打包為zip文件,且打包后的zip文件可以通過其它工具打開。

Qt中提供了qCompress/qUncompress來進行文件的壓縮與解壓,但存在兩個問題:

  1. 無法很好地壓縮/解壓縮文件夾。
  2. 只能將一個文件壓縮為某種格式,壓縮后的文件無法通過其它解壓工具打開(如:7zip,或WinRAR),只能通過qUncompress解壓讀取,也就是說qCompress生成的壓縮文件不包含普通壓縮文件的一些頭信息,導致無法解壓。

 

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


免責聲明!

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



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