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

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=subdirs
SUBDIRS=quazip

#DEFINES+=QUAZIP_STATIC
#DEFINES+=_ZLIB_H
#DEFINES+=ZLIB_WINAPI

INCLUDEPATH += "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 gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testCode
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../quazip-0.7.3/quazip/debug/ -lquazip
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../quazip-0.7.3/quazip/debug/ -lquazipd

INCLUDEPATH += $$PWD/../quazip-0.7.3/quazip/debug
DEPENDPATH += $$PWD/../quazip-0.7.3/quazip/debug

INCLUDEPATH += $$PWD/../quazip-0.7.3/quazip
测试代码:

#include "JlCompress.h"
//testzlib
void 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添加源码 b
DEFINES += QUAZIP_STATIC
quazipDIR = $$quote($$PWD/quazip-0.7.3/quazip)
INCLUDEPATH += $$quazipDIR
DEPENDPATH += $$quazipDIR
HEADERS += \
        $$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.h

SOURCES += $$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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值