Qt之zip压缩/解压缩(QuaZIP)
摘要: 简述 QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库。适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。
简述
QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库。适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。
Qt中提供了qCompress/qUncompress来进行文件的压缩与解压,但存在两个问题:
- 无法很好地压缩/解压缩文件夹。
- 只能将一个文件压缩为某种格式,压缩后的文件无法通过其它解压工具打开(如:7zip,或WinRAR),只能通过qUncompress解压读取,也就是说qCompress生成的压缩文件不包含普通压缩文件的一些头信息,导致无法解压。
QuaZIP类说明
类 | 说明 |
---|---|
JlCompress | 典型操作工具类 |
QuaAdler32 | Adler32算法校验和 |
QuaChecksum32 | 校验和接口 |
QuaCrc32 | CRC32校验和 |
QuaGzipFile | GZIP 文件操作 |
QuaZIODevice | 压缩/解压 QIODevice |
QuaZip | ZIP 文件 |
QuaZipDir | ZIP文件内目录导航 |
QuaZipFile | ZIP文件内的文件 |
QuaZipFileInfo | ZIP压缩包内的文件信息 |
QuaZipFilePrivate | QuaZip的接口 |
QuaZipNewInfo | 被创建的文件信息 |
QuaZipPrivate | QuaZIP内部类 |
使用
接口说明
QuaZip中的JlCompress类用来压缩和解压缩文件
/**
压缩文件夹
参数一fileCompressed:压缩后的文件
参数二dir:待压缩的目录
参数三recursive:是否递归
**/
static bool compressDir(QString fileCompressed, QString dir = QString(), bool recursive = true);
/**
解压缩文件夹
参数一fileCompressed:待解压缩的文件
参数二fileCompressed:解压缩存放的目录
**/
static QStringList extractDir(QString fileCompressed, QString dir = QString());
配置
在工程中将quazip.lib所在库目录、头文件所在的目录添加到工程中。
pro中添加:
LIBS += -L"D:/quazip/lib" -lquazip
INCLUDEPATH += D:/quazip/src
DEPENDPATH += D:/quazip/src
压缩/解压缩
#include <QApplication>
#include "JlCompress.h"
int main(int argc, char **argv)
{
QApplication app(argc,argv);
// 压缩文件夹
JlCompress::compressDir("F:\\QuaZip.zip", "F:\\QuaZip");
// 解压缩文件夹
JlCompress::extractDir("F:\\QuaZip.zip", "F:\\ExtractQuaZip");
return app.exec();
Qt之zip压缩/解压缩(QuaZIP)的更多相关文章
- Qt之QuaZIP(zip压缩/解压缩)
简述 QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库.适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开 ...
- Qt 之 ZIP开源库 QuaZIP
2013-10-31 21:46 10856人阅读 评论(0) 收藏 举报 分类: Qt(12) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一.简介 ...
- AntZipUtils【基于Ant的Zip压缩解压缩工具类】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 Android 压缩解压zip文件一般分为两种方式: 基于JDK的Zip压缩工具类 该版本存在问题:压缩时如果目录或文件名含有中文, ...
- zip:命令行下zip压缩/解压缩
在Ubuntu 18.04下验证,造冰箱的大熊猫@cnblogs 2019/6/6 序号 功能 命令行输入的命令 1 压缩单个文件 zip package.zip file 2 压缩多个文件 zip ...
- zip压缩解压缩 项目icsharpcode-SharpZipLib-e012155
大家可以到http://www.icsharpcode.net/opensource/sharpziplib/ 下载SharpZiplib的最新版本,支持Zip, GZip, BZip2 和Tar格式 ...
- Qt用Zip压缩文件夹的一些坑
环境: QT3.3.8 vs2005 QDir dir("/home/Blinux/html"); if ( !dir.exists() ) { //目录不存在 } QString ...
- Zip压缩/解压缩(文件夹)
#PS2.0压缩为.zip文件: $zip = "D:\audit_log\test.zip"New-Item $zip -ItemType file$shellApplicati ...
- centos8下gz,bz2,zip压缩解压缩
for gz 1.制作压缩包 [root@192 mnt]# tar czf mydir.tar.gz mydir1/ 2.解压gz 压缩包 [root@192 mnt]# tar xvf mydir ...
- zip压缩与解压缩示例
范例: zip命令可以用来将文件压缩成为常用的zip格式.unzip命令则用来解压缩zip文件. 1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip: # zip -r y ...
随机推荐
- express 实现我猜你喜欢功能
工具:利用cookie-parser中间件; 原理: 每次访问某一具体的文章,就表明可能客户端对这类文章感兴趣, 将这类文章的标签添加到cookie里,字段是like; 然后退回到含有 我猜你喜欢模块 ...
- [Bzoj1911][Apio2010]特别行动队(斜率优化)
题目链接 斜率优化的经典模型,将序列分成若干段,每段有一个权值计算方法,求权值和最大/小 暴力的dp $O(n^{2})$ dp[i]为1-i的序列的最优解.sum[i]为前缀和,$D(i)=ax^{ ...
- django项目学习之异步框架celery
最近用django一个网上商城项目的时候用两个扩展,感觉还不错,所以在此记录一下. 首先来说下celery,celery是一个处理异步任务的框架,需要下载celery包,一般在项目需要进行耗时操作的时 ...
- 分布式事务解决方案汇总:2PC、3PC、消息中间件、TCC、状态机+重试+幂等(转)
数据一致性问题非常多样,下面举一些常见例子.比如在更新数据的时候,先更新了数据库,后更新了缓存,一旦缓存更新失败,此时数据库和缓存数据会不一致.反过来,如果先更新缓存,再更新数据库,一旦缓存更新成功, ...
- Springboot+CAS单点登录
一:安装CAS 下载cas:https://github.com/apereo/cas 1.1 将cas并打成war包.放入一个干净的tomcat中,启动tomcat测试: http://localh ...
- 如何增强Linux和Unix服务器系统安全性
众所周知,网络安全是一个非常重要的课题,而 Linux 和 unix 又是一种服务器上运行最广告的操作系统,下面本文将就加强一些适当的配置来防止一些安全问题的发生,以增强Linux/Unix服务器系统 ...
- tomcat下的日志配置详细说明
#可配置项(5类日志):catalina.localhost.manager.admin.host-manager handlers = 1catalina.org.apache.juli.FileH ...
- Mongo--03 mongo副本集、备份与恢复
目录 一.mongo副本集配置 二.查看副本集状态 三.副本集权重调整 四.创建节点 五.仲裁节点 六.mongo备份与恢复 七.准备测试数据 一.mongo副本集配置 1.创建节点目录和数据目录 # ...
- Zabbix--03 邮件报警、微信报警
目录 一. 邮件报警 1.定义发件人 2.定义收件人 3.优化告警信息 二. 微信报警 1.查看配置文件里的脚本目录路径 2.将weixin.py放在zabbix特定目录 3.配置发信人 4.配置收信 ...
- pandas进阶
pandas是基于numpy构建的库,在数据处理方面可以把它理解为numpy的加强版,由于numpy主要用于科学计算,特长不在于数据处理,我们平常处理的数据一般带有列标签和index索引,这时pand ...