QT学习_QT压缩文件ZIP编译

QT压缩文件ZIP编译
环境准备
系统变量里加入:

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

准备工具

编译zlib

  • 打开VS2015 x64本地命令行工具(在开始栏VS2015文件夹中)

  • cd 到解压的zlib文件目录

  • 输入

    nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
    
    
  • 若出错,则试着将VC\bin\amd64\ml64.exe文件拷贝到zlib文件目录下再进行编译

  • 编译后生成文件 zdll.lib,zlib1.dll等等

编译quaZip

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

测试

  • 新建QT项目,在项目文件下,新建include文件夹和lib文件夹,将quazip下的quazip文件里的所有.h文件以及zconf.h和zlib.h文件复制到include文件中。

  • 将quazip编译生成的两个版本的 lib和dll 以及 zlib编译生成的zdll.lib复制到lib文件夹下

  • 按上面方法添加这两个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
    
  • 在项目的头文件加入:#include <JlCompress.h> 进行验证,运行成功,则可以进行文件的压缩和解压。

库使用方法
QuaZIP类描述:
在这里插入图片描述
主要用QuaZip中的JlCompress类来压缩和解压缩文件

静态方法压缩文件


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

参数:

第一个参数fileCompressed表示压缩后的文件
第二个参数dir表示待压缩的目录
第三个参数recursive表示是否递归
解压缩用静态方法: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");
    }

原文:https://blog.csdn.net/weixin_44342705/article/details/119786175

posted @ 2022-06-01 16:40  萧海~  阅读(378)  评论(0编辑  收藏  举报