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

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.hSOURCES += $$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/includeLIBS += -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.mzph.cn/news/127180.shtml

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

相关文章

STM32:使用蓝牙模块

一、蓝牙概要 蓝牙是一种常见的无线通信协议,通常用于短距离通信。蓝牙分为经典蓝牙和低功耗蓝牙(BLE)。经典蓝牙通常用于需要持续传输数据的设备,比如蓝牙耳机等。低功耗蓝牙通常用于只需要间歇性传输数据的设备,比如运动手环。 蓝牙…

python脚本监听域名证书过期时间,并将通知消息到钉钉

版本一: 执行脚本带上 --dingtalk-webhook和–domains后指定钉钉token和域名 python3 ssl_spirtime.py --dingtalk-webhook https://oapi.dingtalk.com/robot/send?access_tokenavd345324 --domains www.abc1.com www.abc2.com www.abc3.com脚本如下 #!/usr/bin…

实现基于 Azure DevOps 的数据库 CI/CD 最佳实践

数据库变更一直是整个应用发布过程中效率最低、流程最复杂、风险最高的环节,也是 DevOps 流程中最难以攻克的阵地。那我们是否能在具体的 CI/CD 流程中,像处理代码那样处理数据库变更呢? DORA 调研报告 DORA(DevOps Research &am…

Android studio进入手机调试状态

首先usb插入电脑手机打开开发者模式进入点击就会在你的页面显示了

SpringCloud(二) Eureka注册中心的使用

在SpringCloud(一)中,我们学会了使用RestTemplate进行远程调用,但是在调用user-service时候需要在order-service中发送http请求,请求中需要书写对应微服务的ip和端口号,十分不方便,如果此时有多个user-service实例的话,就不知道调用哪个了(除非每次调用的时候都对ip和端口号进行…

设计模式(单例模式、工厂模式及适配器模式、装饰器模式)

目录 0 、设计模式简介 一、单例模式 二、工厂模式 三、适配器模式 四、装饰器模式 0 、设计模式简介 设计模式可以分为以下三种: 创建型模式:用来描述 “如何创建对象”,它的主要特点是 “将对象的创建和使用分离”。包括单例、原型、工厂方法、…

数据仓库-拉链表

在数据仓库中制作拉链表,可以按照以下步骤进行: 确定需求:首先明确需要使用拉链表的场景和需求。例如,可能需要记录历史数据的变化,以便进行时间序列分析等。设计表结构:在数据仓库中,拉链表通…

[SpringCloud | Linux] CentOS7 部署 SpringCloud 微服务

目录 一、环境准备 1、工具准备 2、虚拟机环境 3、Docker 环境 二、项目准备 1、配置各个模块(微服务)的 Dockerfile 2、配置 docker-compose.yml 文件 3、Maven 打包 4、文件整合并传输 三、微服务部署 1、部署至 Docker 2、访问微服务 四…

折纸达珠峰高度(forwhile循环、闭包函数循环)

对折0.1mm厚度的纸张多少次,高度可达珠峰高度8848180mm。 (本笔记适合熟悉循环和列表的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅…

使用 Docker 部署高可用 MongoDB 分片集群

使用 Docker 部署 MongoDB 集群 Mongodb 集群搭建 mongodb 集群搭建的方式有三种: 主从备份(Master - Slave)模式,或者叫主从复制模式。副本集(Replica Set)模式。分片(Sharding)…

vue图书馆书目推荐数据分析与可视化-计算机毕业设计python-django-php

建立本图书馆书目推荐数据分析是为了通过系统对图书数据根据算法进行的分析好推荐,以方便用户对自己所需图书信息的查询,根据不同的算法机制推荐给不同用户不同的图书,用户便可以从系统中获得图书信息信息。 对用户相关数据进行分析&#xff…

C#,数值计算——积分方程与逆理论Quad_matrix的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Quad_matrix : UniVarRealMultiValueFun { private int n { get; set; } private double x { get; set; } public Quad_matrix(double[,] a) { this.n a…

Linux越学越头疼,我要怎么办?

最近,听到一些同学说,“Linux越学越头疼”。其实这句话,在我之前刚接触Linux的时候,也是深有感触。Linux越学越不明所以。最后干脆放弃学习,转而学习其他东西。 其实大家在初学Linux的时候, 有这个感受&am…

四川达州-全国先进计算创新大赛总结

目录 四川达州-全国先进计算创新大赛 1.三个算法,第三个原创的?(国内对比) 2.方案的实际落地应用?(落地应用) 3.农业数据采集有问题(数据采集汇总),很难…

【Tomcat Servlet】如何在idea上部署一个maven项目?

目录 1.创建项目 2.引入依赖 3.创建目录 4.编写代码 5.打包程序 6.部署项目 7.验证程序 什么是Tomcat和Servlet? 以idea2019为例: 1.创建项目 1.1 首先创建maven项目 1.2 项目名称 2.引入依赖 2.1 网址输入mvnrepository.com进入maven中央仓库->地址…

VMware——VMware17设置WindowServer2012R2环境静态IP及关闭防火墙

目录 一、VMware17设置WindowServer2012R2环境静态IP1.1、工具栏虚拟机的设置步骤1.2、工具栏编辑的设置步骤1.3、静态IP的设置步骤 二、VMware17关闭WindowServer2012R2环境防火墙 一、VMware17设置WindowServer2012R2环境静态IP 1.1、工具栏虚拟机的设置步骤 打开VMware虚拟…

CONTAINING_RECORD宏

CONTAINING_RECORD宏的使用 已知类或结构体成员变量的地址&#xff0c;可以取得类或结构体对象的地址。 代码 #include <windows.h> #include <iostream>class MyClass { public:MyClass(){}virtual ~MyClass(){}public:int m_Value1;int m_Value2;int m_Value3; …

线扫相机DALSA--常见问题三:未找到采集卡

“计算机”右键“管理”&#xff0c;选择“设备管理器”&#xff0c;单击打开“图像设备”&#xff0c;即可看到PC上所安装的采集卡型号&#xff0c;采集卡正常状态表现如上图所示&#xff0c;如果采集卡显示黄色叹号&#xff0c;表明驱动存在异常&#xff0c;解决采集卡丢失问…

作物模型--土壤数据制备过程

作物模型–土壤数据制备过程 首先打开FAO网站 下载下面这两个 Arcgis打开.bil文件 .mdb文件在access中转成.xls格式 Arcgis中对.bil文件定义投影

万物皆可“云” 从杭州云栖大会看数智生活的未来

文章目录 前言一、云栖渐进&#xff1a;一个科技论坛的变迁与互联网历史互联网创新创业飞天进化飞天智能驱动数字中国 二、2023云栖大会&#xff1a;云计算人工智能 玩出科技跨界新花样大会亮点重磅嘉宾热门展览算力馆人工智能馆产业创新馆 总结 前言 10月31日&#xff0c;202…