Qt中压缩文件
我使用的是Qt5.7版本,好像5.12版本将Quazip已经集成到安装包中。http://doc.qt.io/qt-5/qtcore-attribution-zlib.html
不管5.12版本,以下是5.7版本集成quazip的方法,使用的编译工具为Qt creator.
说明
Quazip是zlib的Qt版本,即封装zlib为Quazip供Qt方便地调用。
使用时需要下载两个文件。
1、Quazip相关文件
下载地址:http://quazip.sourceforge.net/
2、zlib相关文件
下载地址:http://www.zlib.net/
我下载的zlib是编译好的文件,quazip是自己编译;
可从以下链接下载,其中包括源码以及编译后的文件
百度网盘:
链接:https://pan.baidu.com/s/1QcPSHxJGyGB4eCWuWC_WBg
提取码:hkev
CSDN:
https://download.csdn.net/download/qq_25034451/10921201
quazip编译
│ CMakeLists.txt
│ COPYING
│ Doxyfile
│ FindQuaZip.cmake
│ includes.pri
│ list.txt
│ NEWS.txt
│ quazip.pri
│ quazip.pro
│ quazip.pro.user
│ quazip.sln
│ README.txt
├─doc
├─quazip
└─qztest
如上是Quazip源码的第一层目录
将zlib编译后的include和lib两个文件夹直接拷入quazip目录下。
将上面目录中的quazip.pro文件更改如下:
TEMPLATE=subdirs
SUBDIRS=quazip #qztest
qztest.depends = quazip
即去掉测试代码。
并且在quazip目录下的quazip文件做如下更改:
win32 {
headers.path=$$PREFIX/include/quazip
headers.files=$$HEADERS
target.path=$$PREFIX/lib
INSTALLS += headers target
# workaround for qdatetime.h macro bug
DEFINES += NOMINMAX
INCLUDEPATH +=$$PWD/include ##新加内容
LIBS+= -L $$PWD/lib -lzdll ##新加内容
}
然后就可以编译程序了
debug模式生成libquazipd.a与quazipd.dll
release模式生成libquazip.a与quazip.dll
拷出release模式下的文件即可开始使用quazip来压缩文件了
使用方法
1、创建工程,创建lib与include目录
将quazip.a、quazip.dll、zdll.lib、zlib.def、zlib1.dll拷贝到lib文件夹
将quazip的相关h文件、zlib的相关h文件拷贝到include文件夹
目录结构如下:
├─include
│ crypt.h
│ ioapi.h
│ JlCompress.h
│ quaadler32.h
│ quachecksum32.h
│ quacrc32.h
│ quagzipfile.h
│ quaziodevice.h
│ quazip.h
│ quazipdir.h
│ quazipfile.h
│ quazipfileinfo.h
│ quazipnewinfo.h
│ quazip_global.h
│ unzip.h
│ zconf.h
│ zip.h
│ zlib.h
│
└─lib
libquazip.a
quazip.dll
zdll.lib
zlib.def
zlib1.dll
pro文件修改
在pro文件中添加如下代码:
INCLUDEPATH += $$PWD/include
LIBS += -L$$PWD/lib -lquazip
测试
#include "JlCompress.h"
//省略其他代码
if(!JlCompress::compressDir("F:\\mainwindow.zip","F:\\test"))
qDebug()<<"compress failed";
else
qDebug()<<"compress successed";
参考链接:https://blog.csdn.net/qq_37354286/article/details/78858788
若有疑问可以在下方留言,欢迎关注我的公众号CodingBL。