QT学习_QT压缩文件ZIP编译

QT压缩文件ZIP编译

环境准备

系统变量里加入:

C:\Windows\System32
D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC

准备工具

编译zlib

  1. 打开VS2015 x64本地命令行工具(在开始栏VS2015文件夹中)
  2. cd 到解压的zlib文件目录
  3. 输入
nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
  1. 若出错,则试着将VC\bin\amd64\ml64.exe文件拷贝到zlib文件目录下再进行编译
  2. 编译后生成文件 zdll.lib,zlib1.dll等等

编译quaZip

  1. 在quazip文件建立include和lib两个文件夹
  2. 在include文件夹放入zlib1211/contrib/minizip 里的所有.h文件以及zlib目录的zconf.h和zlib.h文件,lib文件里放入zlib编译生成的zdll.lib文件。
  3. 用QT打开quazip.pro,进入,点击quazip.pro,去掉quaziptest相关
  4. 在内部quazip项目中添加依赖的zlib库,项目右击,选择添加库,添加外部库,点击下一步。选择lib文件夹下的zlib.dll文件,点击下一步,完成即可,在quazip.pro下会自动添加代码。
  5. 对项目右键先执行qmake,再进行构建,构建完成,就可以在Debug\release模式下生成我们需要的dll和lib文件,分别在对应debug/release文件夹中
  6. 编译完成

测试

  1. 新建QT项目,在项目文件下,新建include文件夹和lib文件夹,将quazip下的quazip文件里的所有.h文件以及zconf.h和zlib.h文件复制到include文件中。
  2. 将quazip编译生成的两个版本的 lib和dll 以及 zlib编译生成的zdll.lib复制到lib文件夹下
  3. 按上面方法添加这两个lib依赖库
win32: LIBS += -L$$PWD/quazipPack/lib/ -lzdll

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

INCLUDEPATH += $$PWD/quazipPack/include
DEPENDPATH += $$PWD/quazipPack/include

  1. 在项目的头文件加入:#include <JlCompress.h> 进行验证,运行成功,则可以进行文件的压缩和解压。

库使用方法

QuaZIP类描述:

描述
JlCompress典型操作工具类
QuaAdler32Adler32算法校验和
QuaChecksum32校验和接口
QuaCrc32CRC32校验和
QuaGzipFileGZIP文件操作
QuaZIODevice压缩/解压QIODevice
QuaZipZIP文件
QuaZipDirZIP文件内目录导航
QuaZipFileZIP文件内的文件
QuaZipFileInfoZIP压缩包内的文件信息
QuaZipFilePrivateQuaZip的接口
QuaZipNewInfo被创建的文件信息
QuaZipPrivateQuaZIP内部类

主要用QuaZip中的JlCompress类来压缩和解压缩文件

  1. 静态方法压缩文件

static bool compressDir(QString fileCompressed, QString dir=QString(), bool recursive = true)
    

参数:

  • 第一个参数fileCompressed表示压缩后的文件
  • 第二个参数dir表示待压缩的目录
  • 第三个参数recursive表示是否递归
  1. 解压缩用静态方法:extractDir

static QStringList extractDir(QString fileCompressed, QString dir=QString())
    

参数:

  • 第一个参数fileCompressed表示待解压缩的文件
  • 第二个参数表示解压缩存放的目录

例子

if(false == JlCompress::compressDir("D:\\lesliex\\QTpro\\QuaZIP_Learn\\quazipTest\\1.zip",
                                        "D:\\lesliex\\QTpro\\QuaZIP_Learn\\quazipTest\\1"))
    {
        qDebug("false");
    }
    else{
        qDebug("yes");
    }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值