Qt QuaZip 解压zip文件
2016-09-07 12:59
441 查看
起因
由于工作中有需要解压网络上下载的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
相关文章推荐
- Qt调用quazip来解压和压缩文件
- Qt使用QuaZip对文件进行压缩解压操作
- Qt使用QuaZIP 压缩/解压文件
- Qt使用QuaZip对文件进行压缩解压操作
- 使用QuaZip解压文件
- Qt中用QuaZip来压缩和解压缩文件
- Qt实现zip压缩和解压,编译、调用zlib和QuaZip动态库过程详解
- Qt中用QuaZip来压缩和解压缩文件
- ZLIB quazip (只能对ZIP进行解压,不能对RAR等其它的压缩文件解压)
- Qt实现zip压缩和解压,编译、调用zlib和QuaZip动态库过程详解
- Qt中用QuaZip来压缩和解压缩文件
- Qt用QuaZip实现压缩/解压的小Demo
- Qt使用Quazip直接读取压缩包内文件
- Qt中用QuaZip来压缩和解压缩文件
- 使用QuaZip对文件进行压缩解压操作
- linux下解压zip文件
- ZIP文件解压后文件名乱码解决办法
- Zip压缩文件 与 解压 (MFC 文件操作 四 )
- android 解压ZIP文件到 SD卡 , 创建数据连接
- 如何在Linux下创建与解压zip, tar, tar.gz和tar.bz2文件