转自:https://www.cnblogs.com/lvdongjie/p/7345541.html
1、简介
QuaZIP是使用Qt,C++对ZLIB进行简单封装的用于压缩ZIP以及解压缩ZIP的开源库。
官方主页:http://quazip.sourceforge.net/
souceforge下载地址:http://sourceforge.net/projects/quazip/
2、编译
QuaZip是基于Zlib库的,编译前要导入zlib的头文件,编译后会生成quazip.lib和quazip.dll文件(用的是vs)
如果用Qt来编译,直接编译会报错,需要添加zlib.h的包含目录,在quazip/quazip.pro文件中添加INCLUDEPATH += “qt源码目录\src\qtbase\src\3rdparty\zlib”
同时将quazip.pro文件中的SUBDIRS = quazip qztest注释,换成SUBDIRS = quazip,选择“重新构建”会生成libquazipd.a和quazipd.dll
3、环境配置
将编译好的lib和include文件拷贝到你的工程目录下。
然后再pro中添加:
LIBS += -L"D:/quazip/lib" -lquazip
INCLUDEPATH += D:/quazip/src
DEPENDPATH += D:/quazip/src
4、应用
函数
/**
压缩文件夹
参数一fileCompressed:压缩后的文件
参数二dir:待压缩的目录
参数三recursive:是否递归
**/
static bool compressDir(QString fileCompressed, QString dir = QString(), bool recursive = true);
/**
解压缩文件夹
参数一fileCompressed:待解压缩的文件
参数二fileCompressed:解压缩存放的目录
**/
static QStringList extractDir(QString fileCompressed, QString dir = QString());
例子
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "JlCompress.h"
#include <QMessageBox>
//此处省略一部分代码
//压缩
void MainWindow::on_pushButton_clicked()
{
if(!JlCompress::compressDir("E:\\test.zip","E:\\test"))
QMessageBox::warning(this,"warning","compress failed");
else QMessageBox::warning(this,"warning","compress successed");
}
//解压
void MainWindow::on_pushButton_2_clicked()
{
JlCompress::extractDir("E:\\test.zip","E:\\extractZip");
}