1.下载QuaZIP
http://sourceforge.net/projects/quazip/
2.编译
linux下的编译QuaZIP官网上有说明,这里说下怎么在Windows下编译。
2.1 用Qt(版本5以上会出错,我用的是4.8.6版本)打开D:\quazip-0.7.1\quazip项目。
2.2 右键qmake,然后构建
3.引用QuaZIP,下面的目录结构是Qt官方文档使用的方法:
在项目下新建一个文件quazip-0.7.1,在这个文件新建bin,include,lib
testapp
quazip-0.7.1
bin
include
lib
bin下放编译好的quazip.dll
lib 下放quazip的lib文件 quazip.lib(此编译没有生成lib文件,所以不需要)
include下放quazip的所有头文件
crypt.h
ioapi.h
JlCompress.h
quaadler32.h
quachecksum32.h
quacrc32.h
quagzipfile.h
quaziodevice.h
quazip.h
quazip_global.h
quazipdir.h
quazipfile.h
quazipfileinfo.h
quazipnewinfo.h
unzip.h
zip.h
4.在项目中pro加入:
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/quazip-0.7.1/bin/ -lquazip
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/quazip-0.7.1/bin/ -lquazip
INCLUDEPATH += $$PWD/quazip-0.7.1/include
DEPENDPATH += $$PWD/quazip-0.7.1/include
5.解压缩测试
#include "quazip-0.7.1/include/JlCompress.h"
bool MainWindow::Extract(const QString& in_file_path, const QString& out_file_path) { QuaZip archive(in_file_path); if (!archive.open(QuaZip::mdUnzip)) return false; QString path = out_file_path; if (!path.endsWith("/") && !out_file_path.endsWith("\\")) path += "/"; QDir dir(out_file_path); if (!dir.exists()) dir.mkpath(out_file_path); for( bool f = archive.goToFirstFile(); f; f = archive.goToNextFile() ) { QString filePath = archive.getCurrentFileName(); QuaZipFile zFile(archive.getZipName(), filePath); zFile.open(QIODevice::ReadOnly ); QByteArray ba = zFile.readAll(); zFile.close(); if (filePath.endsWith("/")) { dir.mkpath(filePath); } else { QFile dstFile(path + filePath); if (!dstFile.open(QIODevice::WriteOnly)) return false; dstFile.write(ba); dstFile.close(); } } return true; }
原文:http://www.cnblogs.com/ike_li/p/4973541.html