Qt QuaZip 解压zip文件
来源:互联网 发布:向着网络强国杨帆远航 编辑:程序博客网 时间:2024/05/16 02:14
起因
由于工作中有需要解压网络上下载的zip文件,之前考虑到用zlib,但是发现zlib使用较为不便,后面网上了解到QuaZip对zlib进行了封装,使用更为简易。
于是搜索QuaZip,附:官网http://quazip.sourceforge.net/。下载源码,记录下编译和使用规则。
编译
下载并解压后发现目录中有.pro文件和.sln文件,直接运行sln文件并不能正常编译,遂运行pro文件,并再quazip.pro中添加INCLUDEPATH += “D:/Qt/Qt5.7.0/5.7/msvc2013/include/QtZlib”
这里只需要编译quazip即可,如果要编译qztest,则同样在qztest.pro中添加如上INCLUDEPATH即可。
后面能够正常编译,但并未找到lib文件(好久不用qtcreater,不是很记得pro文件的配置,也懒得看帮助~~)。于是导入到vs中进行编译。直接导入pro文件新生成sln即可(不要用原先的sln,配置比较麻烦),于是编译生成对应的sln文件。
应用示例
运用相对还是比较简单的示例如下,代码比较简单,即在当前目录解压zip文件,一般都能看懂:
QuaZip archive("xxx.zip"); if (!archive.open(QuaZip::mdUnzip)) { return false; } QDir dir(giftDir); 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(giftDir + filePath); if (!dstFile.open(QIODevice::WriteOnly)) return false; dstFile.write(ba); dstFile.close(); } }
附1,当时参考到的一个例子,写得很好,按照他的方法配置pro文件也可以达到生成需要的lib的需求:http://blog.csdn.net/tong5956/article/details/47183815
附2,对QuaZip的介绍,写得挺好的 http://blog.csdn.net/kfbyj/article/details/13888101
1 0
- Qt QuaZip 解压zip文件
- 使用QuaZip解压文件
- Qt使用QuaZip对文件进行压缩解压操作
- Qt使用QuaZip对文件进行压缩解压操作
- Qt 之 ZIP开源库 QuaZIP
- Qt 之 ZIP开源库 QuaZIP
- Qt 之 ZIP开源库 QuaZIP
- Qt实现zip压缩和解压,编译、调用zlib和QuaZip动态库过程详解
- Qt之QuaZIP(zip压缩/解压缩)
- Qt之QuaZIP(zip压缩/解压缩)
- Qt调用quazip来解压和压缩文件
- qt5.4.0使用quazip解压缩zip文件
- Qt 使用QuaZip库生成MD5加密Zip格式压缩文件
- Qt用QuaZip实现压缩/解压的小Demo
- ZLIB quazip (只能对ZIP进行解压,不能对RAR等其它的压缩文件解压)
- 使用QuaZip对文件进行压缩解压操作
- nodejs zip 解压zip文件
- Zip文件解压
- CocoaPods更新失败的问题
- iframe异步加载技术及性能
- android watson
- 使用Tomcat+Redis来实现集群部署中的Session共享问题
- 风功率预测系统
- Qt QuaZip 解压zip文件
- apache单ip多域名多目录配置Demo
- js获取元素高度比较
- 白盒测试中的六种覆盖方法及案例分析
- IE浏览器兼容问题
- 靠谱阿姨 APP 个人原创设计
- 如果你也和我一样茫然
- java集合框架概述
- GreenDao查询,有时会查不到数据,解决方法。