Qt之zip压缩/解压缩(QuaZIP)

QuaZIP是一个使用Qt/C++封装的ZLIB开源库,用于ZIP文件的压缩与解压缩。它解决了Qt自带qCompress/qUncompress无法良好处理文件夹及压缩文件不兼容第三方工具的问题。本文介绍了QuaZIP的类说明、使用方法及配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

摘要: 简述 QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库。适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。

简述

QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库。适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。

Qt中提供了qCompress/qUncompress来进行文件的压缩与解压,但存在两个问题:

  1. 无法很好地压缩/解压缩文件夹。
  2. 只能将一个文件压缩为某种格式,压缩后的文件无法通过其它解压工具打开(如:7zip,或WinRAR),只能通过qUncompress解压读取,也就是说qCompress生成的压缩文件不包含普通压缩文件的一些头信息,导致无法解压。

 

QuaZIP类说明

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

使用

接口说明

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();

转载于:https://www.cnblogs.com/lvdongjie/p/7345545.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值