Qt 使用Quazip解压缩、压缩文件

news2025/3/2 1:17:04

1.环境搭建

Quazip,是在zlib基础上进行了简单封装的开源库,适用于多种平台,利用它可以很方便将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。

下载Quazip

QuaZIP download | SourceForge.net

解压后,使用QtCreator打开quazip.pro文件。

我这里使用MSVC2015_64的编译器。

拷贝Qt目录下的QtZlib/zlib.h和zconf.h文件到quazip源码目录。

要拷贝的目的目录如下: 

修改quazip.pri文件如下图所示:

添加

$$PWD/zconf.h

$$PWD/zlib.h

INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD
HEADERS += \
        $$PWD/crypt.h \
        $$PWD/ioapi.h \
        $$PWD/JlCompress.h \
        $$PWD/quaadler32.h \
        $$PWD/quachecksum32.h \
        $$PWD/quacrc32.h \
        $$PWD/quagzipfile.h \
        $$PWD/quaziodevice.h \
        $$PWD/quazipdir.h \
        $$PWD/quazipfile.h \
        $$PWD/quazipfileinfo.h \
        $$PWD/quazip_global.h \
        $$PWD/quazip.h \
        $$PWD/quazipnewinfo.h \
        $$PWD/unzip.h \
        $$PWD/zip.h \
        $$PWD/zconf.h \
        $$PWD/zlib.h

SOURCES += $$PWD/qioapi.cpp \
           $$PWD/JlCompress.cpp \
           $$PWD/quaadler32.cpp \
           $$PWD/quacrc32.cpp \
           $$PWD/quagzipfile.cpp \
           $$PWD/quaziodevice.cpp \
           $$PWD/quazip.cpp \
           $$PWD/quazipdir.cpp \
           $$PWD/quazipfile.cpp \
           $$PWD/quazipfileinfo.cpp \
           $$PWD/quazipnewinfo.cpp \
           $$PWD/unzip.c \
           $$PWD/zip.c

然后编译,生成库文件

2.使用

新建工程QuaZipTest,工程同级目录新建thirdPart目录。

thirdPart目录结构如下:

 

include目录下,将Quazip的头文件拷贝过去。

 

修改 QuaZipTest,pro文件

QMAKE_LIBDIR += $$PWD/../thirdPart/quazip/

INCLUDEPATH += $$PWD/../thirdPart/quazip/include

LIBS += -lquazip

使用代码示例:

    // 解压文件
    JlCompress::extractFile("F:\\test.zip", "F:\\test.txt");

    // 压缩文件
    JlCompress::compressFile("F:\\test.zip", "F:\\test.txt");

    // 解压文件夹
    JlCompress::extractDir("F:\\test.zip", "F:\\test");

    // 压缩文件夹
    JlCompress::compressDir("F:\\test.zip", "F:\\test");

3.quazip类说明

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

4.QtCreator无法使用msvc的编译器解决方法

编译项目,提示无法运行rc.exe

使用everything搜索rc.exe和rcdll.dll这两个文件,然后拷贝

D:\Windows Kits\10\bin\10.0.17763.0\x64\rc.exe

D:\Qt\Qt5.11.0\5.11.0\msvc2015_64\bin\

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1157896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云99元服务器ECS经济型e实例是什么来头?

阿里云99元服务器ECS经济型e实例是什么来头?阿里云新品云服务器实例:ECS经济型e实例,价格优惠2核2G经济型e实例、3M带宽、40G ESSD entry系统盘,优惠价99元一年,老用户也可以买,第二年续费不涨价依旧是99元…

如何翻译shader graph到代码并添加额外的效果

使用shader graph翻译到代码可以使用连线工具快速制作效果并转换为代码,如果你对shader的“贴心/详细”报错,以及提示不完善等等问题感到恼火,这个方式或许可以一定程度上缓解以上问题。 本次使用的三个shader graph资源:https:…

速卖通卖家如何通过自己搭建测评补单系统,提高产品权重和排名?

速卖通卖家如何给店铺增加权重和排名? 在竞争激烈的速卖通平台上,为自己的店铺增加权重是吸引更多买家和提升销售的关键。店铺的权重决定着在搜索排名、推荐位和广告展示方面的优先级。今天珑哥为您介绍一些有效的策略,帮助您提升速卖通店铺…

Springboot使用EasyExcel导入导出Excel文件

1&#xff0c;准备Excel文件和数据库表结果 2&#xff0c;导入代码 1&#xff0c;引入依赖 <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifac…

[鹏城杯 2022]简单的php 取反的另一种无数字字母rce 通过请求头执行命令

鹏城杯2022部分web-CSDN博客 无字母webshell | Bypass-腾讯云开发者社区-腾讯云 这里记录一下 首先获取过滤if(strlen($code) > 80 or preg_match(/[A-Za-z0-9]|\|"||\ |,|\.|-|\||\/|\\|<|>|\$|\?|\^|&|\|/is,$code)) 写个脚本看看还有什么没有被过滤 …

低成本语音芯片是如何写入语音到芯片里面otp和flash型

一、简介 低成本语音芯片是如何写入语音到芯片里面otp和flash型。低成本其实是一个相对的概念&#xff0c;比如&#xff1a;玩具类型的巨量产品&#xff0c;简单&#xff0c;它的低成本就是最低&#xff0c;能抠出来一分&#xff0c;就是一分。所以对芯片的要求就很高&#xf…

基于单片机设计的太阳能跟踪器

一、前言 随着对可再生能源的需求不断增长&#xff0c;太阳能作为一种清洁、可持续的能源形式&#xff0c;受到越来越多的关注和应用。太阳能光板通常固定在一个固定的角度上&#xff0c;这限制了它们对太阳光的接收效率。为了充分利用太阳能资源&#xff0c;提高太阳能光板的…

Oracle(10)Managing Undo Data

目录 一、基础知识 1、AUM :Init Parameters AUM:初始化参数 2、AUM:Other Parameters AUM:其他参数 3、AUM:Sizing an UNDO TS AUM:调整UNDOTS的大小 4、AUM :Undo Quota AUM:撤消配额 5、Get Undo Segment Info 获取撤消段信息 二、基础操作 1、AUM:UNDO Tablespace …

2、循环依赖详解(二)

bean的实例化过程源码解析 建议用IDEA的debug模式来观察Spring的IOC过程 进入到此类的构造方法中 查看setConfigLocations&#xff0c;就是将配置文件加载到configLocations里去 向下执行&#xff0c;查看refresh() this.prepareRefresh(): 此方法是准备工作&#xff0c;大家…

Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)

目录 前言初始化数据库Docker 部署 xxl-job下载镜像创建容器并运行访问调度中心 SpringBoot 整合 xxl-jobpom.xmlapplication.ymlXxlJobConfig.java执行器注册查看 定时任务测试添加测试任务配置定时任务测试结果 结语附录xxl-job 官方文档xxl-job 源码测试项目源码 前言 xxl-…

防雷接地测试方法完整方案

防雷接地是保障电力系统、电子设备和建筑物安全的重要措施&#xff0c;防雷接地测试是检验防雷接地装置是否合格的必要手段。本文介绍了防雷接地测试的原理、方法和注意事项&#xff0c;以及如何编写防雷接地测试报告。 地凯科技防雷接地测试的原理 防雷接地测试的基本原理是…

人工智能快速发展时代下的“AI诈骗防范”

当前&#xff0c;AI技术的广泛应用为社会公众提供了个性化智能化的信息服务&#xff0c;也给网络诈骗带来可乘之机&#xff0c;如不法分子通过面部替换语音合成等方式制作虚假图像、音频、视频仿冒他人身份实施诈骗、侵害消费者合法权益。你认为AI诈骗到底应该如何防范&#xf…

TimeGPT-1——第一个时间序列数据领域的大模型他来了

一直有一个问题:时间序列的基础模型能像自然语言处理那样存在吗?一个预先训练了大量时间序列数据的大型模型&#xff0c;是否有可能在未见过的数据上产生准确的预测?最近刚刚发表的一篇论文&#xff0c;Azul Garza和Max Mergenthaler-Canseco提出的TimeGPT-1&#xff0c;将ll…

国内某发动机制造工厂RFID智能制造应用解决方案

一、工厂布局和装备 国内某发动机制造工厂的装配车间布局合理&#xff0c;设备先进&#xff0c;在这个5万平方米的生产区域内&#xff0c;各个工位之间流程紧密&#xff0c;工厂采用了柔性设备&#xff0c;占比达到了67%&#xff0c;数控化率超过90%&#xff0c;自动化率达到了…

AD教程(四)排针类元件模型的创建

AD教程&#xff08;四&#xff09;排针类元件模型的创建 新建元件&#xff0c;输入排针型号作为元件命名 快捷键TC 快速创建元件 放置外框 放置管脚&#xff0c;排针管脚号在原理图上一般不显示&#xff0c;需要将管脚号隐藏&#xff0c;但一般不建议隐藏&#xff0c;如果将管…

如何在《阴阳师》游戏中使用Socks5搭建工具

题目&#xff1a;如何在《阴阳师》游戏中使用S5搭建工具S5一键搭建脚本进行游戏战队组建&#xff1f; 引言&#xff1a; 游戏加速和游戏战队组建已经成为《阴阳师》玩家们非常关心的话题。在这篇文章中&#xff0c;我们将向您展示如何在《阴阳师》游戏中使用S5搭建工具S5一键搭…

有奖快来抱走全新HUAWEI WATCH GT4

亲爱的openGauss用户&#xff0c; 为了给您提供更好的社区体验&#xff0c;现诚邀您参与openGauss社区满意度问卷调研。您的每一个宝贵建议都是我们进步的方向。 手机扫描二维码即可填写问卷&#xff0c;请根据您真实的体验情况填写问卷&#xff0c;问卷反馈越真实有效越有机…

Kafka基本原理、生产问题总结及性能优化实践 | 京东云技术团队

Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、支持分区的&#xff08;partition&#xff09;、多副本的&#xff08;replica&#xff09;&#xff0c;基于zookeeper协调的分布式消息系统&#xff0c;它的最大的特性就是可以实时的处理大量数据以满足各种需求场景&a…

超越终端:Java语言在命令行环境中的无限潜力

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

为什么要安装防静电门禁闸机

安装防静电门禁闸机可以带来以下几个方面的好处&#xff1a; 防止静电干扰&#xff1a;静电是一种非常危险的物理现象&#xff0c;它可以对电子元器件、电路板和其他敏感设备造成损害&#xff0c;甚至导致设备故障和生产中断。防静电门禁闸机可以有效地防止静电的产生和传导&am…