ZLIB quazip (只能对ZIP进行解压,不能对RAR等其它的压缩文件解压)

来源:互联网 发布:糜烂网络上是什么意思 编辑:程序博客网 时间:2024/05/17 15:18
ZLIB 主要是对ZIP 文件进行压缩与解压缩 但是有一个缺点:不能对文件夹循环解压压缩,quazip 主要是对 ZLIB 进行封装,解决它的这一个BUG
ZLIB主页:http://www.zlib.net/index.html
ZLIB使用范例 http://www.zlib.net/zlib_how.html

quazip 官网 :http://quazip.sourceforge.net/

也尝试过自己先编译ZLIB再编译quazip,但的是一直不成功,后来就直接用了QT自带的zlib库来编译quazip

PRO文件如下:

F:\quazip-0.7.3\quazip.pro

#TEMPLATE=subdirs#SUBDIRS=quazip qztest#qztest.depends =TEMPLATE=subdirsSUBDIRS=quazip#DEFINES+=QUAZIP_STATIC#DEFINES+=_ZLIB_H#DEFINES+=ZLIB_WINAPIINCLUDEPATH += "C:\\Qt\\4.8.5\\src\\3rdparty\\zlib"INCLUDEPATH += $$PWD/DEPENDPATH += $$PWD/

后来遇到了问题:

F:\zipljt\quazip-0.7.3\quazip\quacrc32.cpp:27: 错误:C1083: 无法打开包括文件:“zlib.h”: No such file or directory,但是又可以进入此文件
F:\zipljt\quazip-0.7.3\quazip\zlib.h:34: 错误:C1083: 无法打开包括文件:“zconf.h”: No such file or directory
上面2个错误参考:

http://www.tuicool.com/articles/nammyu

http://blog.csdn.net/xiexingshishu/article/details/44947985
http://blog.csdn.net/s569646547/article/details/51436380

解决办法:直接把  C:\Qt\4.8.5\src\3rdparty\zlib 下面的这些文件COPY到F:\zipljt\quazip-0.7.3\quazip\ 下面,编译 quazip 工程,解决问题。

使用程序:F:\zipljt\testCode\testCode.pro:

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = testCodeTEMPLATE = appSOURCES += main.cpp\        mainwindow.cppHEADERS  += mainwindow.hFORMS    += mainwindow.uiwin32:CONFIG(release, debug|release): LIBS += -L$$PWD/../quazip-0.7.3/quazip/debug/ -lquazipelse:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../quazip-0.7.3/quazip/debug/ -lquazipdINCLUDEPATH += $$PWD/../quazip-0.7.3/quazip/debugDEPENDPATH += $$PWD/../quazip-0.7.3/quazip/debugINCLUDEPATH += $$PWD/../quazip-0.7.3/quazip
测试代码:

#include "JlCompress.h"//testzlibvoid MainWindow::on_testzlib_clicked(){    // 压缩文件夹 已经有,则会覆盖    JlCompress::compressDir("F:\\tx\\xx.zip", "F:\\tx\\dcomp");    // 解压缩文件夹 如果已经 "F:\\tx\\xdcomp" 已经有,则会覆盖    JlCompress::extractDir("F:\\tx\\xx.zip", "F:\\tx\\xdcomp");}

后来因为要调试代码,所以觉得用库不是很方便,就直接加的源代码,PRO如下:

#quazipDIR添加源码 bDEFINES += QUAZIP_STATICquazipDIR = $$quote($$PWD/quazip-0.7.3/quazip)INCLUDEPATH += $$quazipDIRDEPENDPATH += $$quazipDIRHEADERS += \        $$quazipDIR/crypt.h \        $$quazipDIR/ioapi.h \        $$quazipDIR/JlCompress.h \        $$quazipDIR/quaadler32.h \        $$quazipDIR/quachecksum32.h \        $$quazipDIR/quacrc32.h \        $$quazipDIR/quagzipfile.h \        $$quazipDIR/quaziodevice.h \        $$quazipDIR/quazipdir.h \        $$quazipDIR/quazipfile.h \        $$quazipDIR/quazipfileinfo.h \        $$quazipDIR/quazip_global.h \        $$quazipDIR/quazip.h \        $$quazipDIR/quazipnewinfo.h \        $$quazipDIR/unzip.h \        $$quazipDIR/zip.hSOURCES += $$quazipDIR/qioapi.cpp \           $$quazipDIR/JlCompress.cpp \           $$quazipDIR/quaadler32.cpp \           $$quazipDIR/quacrc32.cpp \           $$quazipDIR/quagzipfile.cpp \           $$quazipDIR/quaziodevice.cpp \           $$quazipDIR/quazip.cpp \           $$quazipDIR/quazipdir.cpp \           $$quazipDIR/quazipfile.cpp \           $$quazipDIR/quazipfileinfo.cpp \           $$quazipDIR/quazipnewinfo.cpp \           $$quazipDIR/unzip.c \           $$quazipDIR/zip.c#quazipDIR添加源码 e
调试代码主要在  JlCompress类中
 



0 0
原创粉丝点击