QT压缩解压文件

news2024/11/27 20:40:00

文章目录

  • 前言
  • 一、下载Quazip
  • 二、编译Quazip
    • 1.使用vs2019打开quazip.sln
    • 2.使用Qt VS Tools打开外层的.pro工程
    • 3.编译
  • 三、工程使用
    • 1.配置头文件路径
    • 2.配置静态库lib目录
    • 3.添加库
    • 4.动态库dll放到.exe同级目录下
    • 5.使用


前言

Qt工程中需要用到zip压缩解压功能,网上搜索了下,一般有以下三种使用:

  • Qt自带的zipWriter与zipReader
  • zlib
  • Quazip

对于第一种,使用Qt自带的zipWriter与zipReader,需要在工程文件添加gui-private模块,然而在安装Qt时如果未勾选Source安装的话,是没有这个模块的,而且此模块为某几个版本的私有模块,可能升级Qt之后就没有此模块了,Qt官方也不推荐使用;

对于第二种zlib,一般需要进一步封装使用,此处不做说明;

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

使用VS2019+Qt5.15.2编译Quazip


一、下载Quazip

前往Quazip下载地址下载0.7.3版本源码.解压之后如下所示:

在这里插入图片描述

二、编译Quazip

1.使用vs2019打开quazip.sln

出现以下错误,莫方,点击确定。

在这里插入图片描述

2.使用Qt VS Tools打开外层的.pro工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一直确定就可以成功加载了

3.编译

查看msvc版本及路径

在这里插入图片描述
打开msvc2019_64\include\QtZlib目录,将两个头文件拷贝到工程目录下
在这里插入图片描述
在这里插入图片描述
重新生成,编译通过!
再切换到release模式下编译,最终需要的文件有:
debug下的lib和dll库
release下的lib和dll库
quazip工程目录下的所有.h文件和.cpp文件


三、工程使用

将debug/release动静态库和include文件拷贝到zip文件夹下,将zip文件夹拷贝到工程目录下

1.配置头文件路径

在这里插入图片描述

2.配置静态库lib目录

在这里插入图片描述

3.添加库

release模式配置相同
在这里插入图片描述

4.动态库dll放到.exe同级目录下

5.使用

#include "JlCompress.h"

// 解压文件
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");

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

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

相关文章

【论文阅读】Deep Instance Segmentation With Automotive Radar Detection Points

基于汽车雷达检测点的深度实例分割 一个区别: automotive radar 汽车雷达 : 分辨率低,点云稀疏,语义上模糊,不适合直接使用用于密集LiDAR点开发的方法 ; 返回的物体图像不如LIDAR精确,可以…

Die2Die(D2D)和chip2chip(C2C)之间的高速互联接口

随着chiplet的兴起,Die2Die的高速互联越来越重要,相比于传统的C2C(chip2chip)的互联,D2D的片间距离很近(10mm量级),且这些小的chip(裸片)最终形成一个封装【多芯片模块(MCM)】。所以D2D的互联信道短&#x…

ASEMI快恢复二极管APT80DQ20BG怎么检查好坏

编辑-Z 二极管APT80DQ20BG是一种高压快恢复二极管,常用于电源和电能质量控制等领域。如果您的二极管出现故障或需要进行维修,以下是一些可能的解决方案。 首先,确保您已经断开了电源,并且具备基本的电子维修知识和技能。如果您不…

XTTS报错

1.ORA-19504: 无法创建文件"/tmp/data /RETEST_6.tf" ORA-27040: 文件创建错误, 无法创建文件Doc ID 2433808.1 我在使用$ORACLE_HOME/perl/bin/perl xttdriver.pl --backup --debug 3 做第一次全量备份的时候总是提示无法创建文件,问价目录读写和用户权…

嵌入式领域:人才供需失衡,发展潜力巨大

嵌入式技术正快速发展,ARM处理器、嵌入式操作系统、LINUX等技术助力嵌入式领域崛起。然而,行业新颖且门槛高,缺乏专业指导。因此,嵌入式人才稀缺,身价水涨船高。 未来几年,嵌入式系统将在信息化、智能化、…

ATFX汇评:美国7月CPI数据即将揭晓,市场预期将有所反弹

ATFX汇评:今日20:30,美劳工部将公布7月未季调CPI年率,前值为3%,预期值3.3%;同一时间公布7月未季调核心CPI年率,前值为4.8%,预期值持平;至8月5日当周初请失业金人数也将同时发布&…

软件功能测试有什么注意事项?功能测试报告起到什么作用?

软件功能测试是软件开发过程中至关重要的一环,它用于评估软件功能的质量和稳定性,并确保软件能够按照预期进行工作。然而,在进行功能测试时,有一些注意事项需要特别关注,以确保测试的准确性和有效性。 一、软件功能测…

pytest fixture 用于teardown工作

fixture通过scope参数控制setup级别,setup作为用例之前前的操作,用例执行完之后那肯定也有teardown操作。这里用到fixture的teardown操作并不是独立的函数,用yield关键字呼唤teardown操作。 举个例子: 输出: 说明&…

SUB-1G SOC芯片DP4306F 32 位 ARM Cortex-M0+内核替代CMT2380F32

DP4306F是一款高性能低功耗的单片集成收发机,集成MO核MCU,工作频率可覆盖200MHiz^ 1000MHz。 支持230/408/433/470/868/915频段。该芯片集成了射频接收器、射频发射器、频率综合器、GFSK调制器、GFSK解调器等功能模块。通过SPI接口可以对输出功率、频道选…

英特尔发布雷电3接口:竟和USB Type-C统一了 - 全文

在过去的一年里,外部连接通信线的世界里发生了很多时。在这段时间,USB先后发布了10Gbps “超高速”USB3.1以及新的USB Type-C连接器,这是一种新式的可正反插的接口,将成为未来十年乃至更长时间上的行业标准。同时随着USB备用模式功…

第03天 String, StringBuffer, StringBuilder的区别

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:每天一个知识点 ✨特色专栏&#xff1a…

用C语言高效地打印杨辉三角

假设杨辉三角的通项公式为a(n),则打印形式如下: 然而我们知道,它应该是这样的: 三角形两边的值都为1,且每个元素的值都为该元素正上方和其正上方前面的元素的值之和。 为了实现这个代码,我们需要知道每行首…

JAVA基础之放弃使用Random

随机是日常生活中经常遇到的非常有趣的东西,比如说抛硬币,他的不可预知性总是让我们特别着迷,在拿不定主意时,有些人就喜欢用抛硬币的方式来帮助我们做决定。体育领域也喜欢用喜欢用抛硬币的方式来猜先。随机数功能是Java非常非常…

数字万用表测量基础知识--使用DMM测量电流

概览 DMM(即数字万用表)是一种电气测试和测量仪器,可测量直流和交流信号的电压、电流和电阻。本文介绍如何正确使用和理解数字万用表(DMM)。 使用DMM测量电流 另一个常见的测量功能是直流和交流电流测量。电压是通过与电路并联进行测量&am…

手机app测试

一、安装、卸载、更新、运行 1.安装、卸载 应用是否可以正常安装(命令行安装;apk/ipa安装包安装)(有网,无网是否都正常)卸载过程中出现死机,断电,重启等意外的情况&…

18 Java并发机制的底层实现原理_volatile实现原理

Java并发机制的底层实现原理_volatile实现原理 Java并发机制的底层实现原理volatile 关键字volatile的两条实现原则(Lock前缀的作用) Java并发机制的底层实现原理 Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,…

【Java并发】什么是AQS?

文章目录 什么是AQS?AQS与Synchronized的区别AQS-基本工作机制AQS是公平锁与非公平锁 什么是AQS? 全称是 AbstractQueuedSynchronizer,即抽象队列同步器。它是构建锁或者其他同步组件的基础框架 所谓抽象,其实目的就是把具体的逻辑交给子类去实现&…

springboot项目get请求下划线转驼峰@JsonProperty注解失效问题

问题:解决sprigboot项目get请求中有下划线的入参参数,如:first_name,希望在项目中将下划线格式转成firstName,用JsonProperty注解发现失效问题 1.核查:JsonProperty注解对应包是否正确 正确包&#xff1a…

2023CNSS——WEB题解(持续更新)

[Baby] SignIn 进来看到 按钮点击不了,想到去修改代码,要“检查“,但这里的右键和F12都不可用 还好还有其他方法 检查的各种方法 选用一种后进入检查页面 删掉这里的disabled即可 点击后得到flag [Baby] Backdoor 进入&#xff0c…

2023河南萌新联赛第(五)场 K.01BFS

文章目录 传送门题目大意题解参考代码 传送门 https://ac.nowcoder.com/acm/contest/62977/K 题目大意 给定一个 n m n \times m nm 的矩阵 G G G ,每个点有权值 G i , j G_{i,j} Gi,j​,开始可以选择一个方向跳,每次跳跃只能跳到严格…