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

简介:

简述

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

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

  1. 无法很好地压缩/解压缩文件夹。
  2. 只能将一个文件压缩为某种格式,压缩后的文件无法通过其它解压工具打开(如: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();
}

更多参考

可以直接下载我编译好的库,里面包含源码及库文件。

相关文章
|
7月前
|
Windows
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之使用QuaZIP
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之使用QuaZIP
268 0
|
7月前
|
Unix 编译器 开发者
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
672 0
|
Ubuntu Unix C语言
Qt三方库开发技术(一):QuaZIP介绍、编译和使用
Qt三方库开发技术(一):QuaZIP介绍、编译和使用
Qt三方库开发技术(一):QuaZIP介绍、编译和使用
|
5月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
191 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
4月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
97 0
|
3月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
3月前