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

转自:https://blog.csdn.net/liang19890820/article/details/50636181

简述

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

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

官方主页
souceforge下载
QuaZIP已编译(含源码及库文件)

作者:一去丶二三里
来源:CSDN
原文:https://blog.csdn.net/liang19890820/article/details/50636181
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/QIJINGBO123/article/details/86569635