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)目錄導航 |
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++中CopyFile和MoveFile函數(shù)使用區(qū)別的示例分析
這篇文章主要介紹了C++中CopyFile和MoveFile函數(shù)使用區(qū)別的示例分析,CopyFile表示將文件A拷貝到B,如果B已經(jīng)存在則覆蓋,MoveFile表示將文件A移動到。對此感興趣的可以來了解一下2020-07-07使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作
這篇文章給大家介紹了使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作,文中通過圖文結(jié)合的方式介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2023-12-12c++實現(xiàn)一個簡易的網(wǎng)絡緩沖區(qū)的實踐
這篇文章主要介紹了c++實現(xiàn)一個簡易的網(wǎng)絡緩沖區(qū)的實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12C++中引用、內(nèi)聯(lián)函數(shù)、auto關(guān)鍵字和范圍for循環(huán)詳解
本文主要梳理了C++當中一些瑣碎的知識點,包括有命名空間,缺省參數(shù),引用,auto關(guān)鍵字和內(nèi)聯(lián)函數(shù),文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2023-02-02c++基礎(chǔ)算法動態(tài)DP解決CoinChange問題
這篇文章主要為大家介紹了c++基礎(chǔ)算法如何利用動態(tài)DP來解決Coin Change的問題示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10