Qt使用Quazip解壓縮、壓縮文件的實現(xiàn)
1.環(huán)境搭建
Quazip,是在zlib基礎(chǔ)上進行了簡單封裝的開源庫,適用于多種平臺,利用它可以很方便將單個或多個文件打包為zip文件,且打包后的zip文件可以通過其它工具打開。
下載Quazip
QuaZIP download | SourceForge.net
解壓后,使用QtCreator打開quazip.pro文件。

我這里使用MSVC2015_64的編譯器。
拷貝Qt目錄下的QtZlib/zlib.h和zconf.h文件到quazip源碼目錄。

要拷貝的目的目錄如下:

修改quazip.pri文件如下圖所示:
添加
$$PWD/zconf.h
$$PWD/zlib.h
INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD
HEADERS += \
$$PWD/crypt.h \
$$PWD/ioapi.h \
$$PWD/JlCompress.h \
$$PWD/quaadler32.h \
$$PWD/quachecksum32.h \
$$PWD/quacrc32.h \
$$PWD/quagzipfile.h \
$$PWD/quaziodevice.h \
$$PWD/quazipdir.h \
$$PWD/quazipfile.h \
$$PWD/quazipfileinfo.h \
$$PWD/quazip_global.h \
$$PWD/quazip.h \
$$PWD/quazipnewinfo.h \
$$PWD/unzip.h \
$$PWD/zip.h \
$$PWD/zconf.h \
$$PWD/zlib.h
SOURCES += $$PWD/qioapi.cpp \
$$PWD/JlCompress.cpp \
$$PWD/quaadler32.cpp \
$$PWD/quacrc32.cpp \
$$PWD/quagzipfile.cpp \
$$PWD/quaziodevice.cpp \
$$PWD/quazip.cpp \
$$PWD/quazipdir.cpp \
$$PWD/quazipfile.cpp \
$$PWD/quazipfileinfo.cpp \
$$PWD/quazipnewinfo.cpp \
$$PWD/unzip.c \
$$PWD/zip.c然后編譯,生成庫文件

2.使用
新建工程QuaZipTest,工程同級目錄新建thirdPart目錄。

thirdPart目錄結(jié)構(gòu)如下:

include目錄下,將Quazip的頭文件拷貝過去。

修改 QuaZipTest,pro文件
QMAKE_LIBDIR += $$PWD/../thirdPart/quazip/ INCLUDEPATH += $$PWD/../thirdPart/quazip/include LIBS += -lquazip
使用代碼示例:
// 解壓文件
JlCompress::extractFile("F:\\test.zip", "F:\\test.txt");
// 壓縮文件
JlCompress::compressFile("F:\\test.zip", "F:\\test.txt");
// 解壓文件夾
JlCompress::extractDir("F:\\test.zip", "F:\\test");
// 壓縮文件夾
JlCompress::compressDir("F:\\test.zip", "F:\\test");3.quazip類說明
| 類 | 說明 |
|---|---|
| JlCompress | 典型操作工具類 |
| QuaAdler32 | Adler32算法校驗和 |
| QuaChecksum32 | 校驗和接口 |
| QuaCrc32 | CRC32校驗和 |
| QuaGzipFile | GZIP 文件操作 |
| QuaZIODevice | 壓縮/解壓 QIODevice |
| QuaZip | ZIP 文件 |
| QuaZipDir | ZIP文件內(nèi)目錄導(dǎo)航 |
| QuaZipFile | ZIP文件內(nèi)的文件 |
| QuaZipFileInfo | ZIP壓縮包內(nèi)的文件信息 |
| QuaZipFilePrivate | QuaZip的接口 |
| QuaZipNewInfo | 被創(chuàng)建的文件信息 |
| QuaZipPrivate | QuaZIP內(nèi)部類 |
4.QtCreator無法使用msvc的編譯器解決方法
編譯項目,提示無法運行“rc.exe”
使用everything搜索rc.exe和rcdll.dll這兩個文件,然后拷貝
D:\Windows Kits\10\bin\10.0.17763.0\x64\rc.exe
到
D:\Qt\Qt5.11.0\5.11.0\msvc2015_64\bin\
到此這篇關(guān)于Qt使用Quazip解壓縮、壓縮文件的實現(xiàn)的文章就介紹到這了,更多相關(guān)Qt Quazip解壓縮內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析C++11 static_assert及與Boost庫的關(guān)聯(lián)從入門到精通
static_assert是C++中強大的編譯時驗證工具,它能夠在編譯階段攔截不符合預(yù)期的類型或值,增強代碼的健壯性,通過自定義錯誤消息加速調(diào)試,本文給大家介紹C++11 static_assert(基于Boost庫)從入門到精通,感興趣的朋友一起看看吧2025-06-06
c++優(yōu)先隊列(priority_queue)用法詳解
這篇文章主要介紹了c++優(yōu)先隊列(priority_queue)用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
C語言使用ffmpeg實現(xiàn)單線程異步的視頻播放器
這篇文章主要為大家詳細介紹了C語言如何使用ffmpeg實現(xiàn)單線程異步的視頻播放器功能,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下2022-12-12

