Qt使用Quazip解壓縮、壓縮文件的實(shí)現(xiàn)
1.環(huán)境搭建
Quazip,是在zlib基礎(chǔ)上進(jìn)行了簡(jiǎn)單封裝的開源庫(kù),適用于多種平臺(tái),利用它可以很方便將單個(gè)或多個(gè)文件打包為zip文件,且打包后的zip文件可以通過(guò)其它工具打開。
下載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然后編譯,生成庫(kù)文件

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

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

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

修改 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類說(shuō)明
| 類 | 說(shuō)明 |
|---|---|
| JlCompress | 典型操作工具類 |
| QuaAdler32 | Adler32算法校驗(yàn)和 |
| QuaChecksum32 | 校驗(yàn)和接口 |
| QuaCrc32 | CRC32校驗(yàn)和 |
| 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無(wú)法使用msvc的編譯器解決方法
編譯項(xiàng)目,提示無(wú)法運(yùn)行“rc.exe”
使用everything搜索rc.exe和rcdll.dll這兩個(gè)文件,然后拷貝
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解壓縮、壓縮文件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Qt Quazip解壓縮內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析C++11 static_assert及與Boost庫(kù)的關(guān)聯(lián)從入門到精通
static_assert是C++中強(qiáng)大的編譯時(shí)驗(yàn)證工具,它能夠在編譯階段攔截不符合預(yù)期的類型或值,增強(qiáng)代碼的健壯性,通過(guò)自定義錯(cuò)誤消息加速調(diào)試,本文給大家介紹C++11 static_assert(基于Boost庫(kù))從入門到精通,感興趣的朋友一起看看吧2025-06-06
c++優(yōu)先隊(duì)列(priority_queue)用法詳解
這篇文章主要介紹了c++優(yōu)先隊(duì)列(priority_queue)用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Qt實(shí)現(xiàn)卡牌對(duì)對(duì)碰游戲(附demo)
本文主要介紹了Qt實(shí)現(xiàn)卡牌對(duì)對(duì)碰游戲,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-10-10
C語(yǔ)言使用ffmpeg實(shí)現(xiàn)單線程異步的視頻播放器
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言如何使用ffmpeg實(shí)現(xiàn)單線程異步的視頻播放器功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-12-12
C語(yǔ)言實(shí)現(xiàn)三子棋游戲(初級(jí)版)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)三子棋游戲初級(jí)版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09

