社区
其他技术讨论专区
帖子详情
Qt 如何解压zip包
weixin_38054293
2019-09-19 11:26:01
如题
...全文
816
11
打赏
收藏
Qt 如何解压zip包
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38099556
2019-09-19
打赏
举报
回复
用7za就很不错的,以解决问题为首要
weixin_38101849
2019-09-19
打赏
举报
回复
为啥不试试zlib呢
weixin_38058520
2019-09-19
打赏
举报
回复
下载个7za.exe,用QProcess::execute()来解压
weixin_38059973
2019-09-19
打赏
举报
回复
我怎么用
weixin_38062424
2019-09-19
打赏
举报
回复
QProcess zip; QStringList arguments; arguments<<QString("x %1 -o%2").arg(file).arg(tempPath); zip.start("7za.exe", arguments);
weixin_38068785
2019-09-19
打赏
举报
回复
这种方式启动不了啊?谢谢
weixin_38069603
2019-09-19
打赏
举报
回复
调用第三方zip库、、
weixin_38071717
2019-09-19
打赏
举报
回复
网上应该有zip压缩解压的源码。直接用在工程中就行了。
weixin_38089806
2019-09-19
打赏
举报
回复
关于Qt内置的解压zip类QZipReader 写了一个实例 打架可以参考一下复制代码#include <QtGui/5.0.1/QtGui/private/qzipreader_p.h>#include <QtCore>int main(int argc,char *argv[]){ QZipReader zip("test.zip");//当前目录下的test.zip QList<QZipReader::FileInfo> l= zip.fileInfoList();//获取zip中所有文件信息 foreach(QZipReader::FileInfo f,l){//遍历 qDebug()<<"Filename:"<<f.filePath;//获取文件名并输出 qDebug()<<"Filedata:"<<zip.fileData(f.filePath);//获取文件内容 (返回QByteArray txt文件可以直接输出 其他文件输出肯定是乱码不解释) } //qDebug()<<zip.extractAll("./test"); //这功能不好用的 建议别用 又不是做压缩软件 前面信息够你用的 return 0;}/*附录:1.QZipReader::FileInfo的声明 struct Q_GUI_EXPORT FileInfo { FileInfo(); FileInfo(const FileInfo &other); ~FileInfo(); FileInfo &operator=(const FileInfo &other); //不解释 bool isValid() const;//貌似是有没有效? QString filePath;//路径 uint isDir : 1;//是否为目录 这个不好用 就是因为他不好用使得extractAll不好用 uint isFile : 1;//是否为文件 uint isSymLink : 1;//快捷方式 QFile::Permissions permissions;//看QFile::Permissions的文档就好了 uint crc;//不知道 qint64 size;//大小 QDateTime lastModified;//最后修改日期 void *d;//不知道 };2.几个有用的函数 QList<FileInfo> fileInfoList() const; 获取所有文件信息 FileInfo entryInfoAt(int index) const; 获取第index个文件的信息 int count() const; 文件数 QByteArray fileData(const QString &fileName) const;获取文件内容 Status status() const;获取状态 用于判断错误 翻源码不解释 void close(); 关闭? QIODevice* device() const; 很常见 获取zip文件的QIODevice bool isReadable() const; 是否可读 bool exists() const;是否存在 explicit QZipReader(const QString &fileName, QIODevice::OpenMode mode = QIODevice::ReadOnly ); 构造函数1 explicit QZipReader(QIODevice *device);构造函数2 ~QZipReader(); 这个还用解释吗?*/
weixin_38090768
2019-09-19
打赏
举报
回复
对应的还有QZipWriter 说这个就跑题了 楼主问的是怎样解压.......源码位置qt5/qtbase/src/gui/text/qzipwriter.hqt5/qtbase/src/gui/text/qzipreader.hqt5/qtbase/src/gui/text/qzip.cppinclude位置qt5/qtbase/include/QtGui/5.0.1/QtGui/private/qzipreader_p.hqt5/qtbase/include/QtGui/5.0.1/QtGui/private/qzipwriter_p.h
weixin_38098983
2019-09-19
打赏
举报
回复
最简单的办法如1楼所说,调用7z的命令行版本7za.exe
Qt
使用自带zlib
解压
zip
文件示例
Qt
使用自带的zlib
解压
文件,无需使用额外编译的zlib。
qt
5.7.1.
zip
Ubuntu 64位 安装
Qt
creator;版本5.7.1
Qt
Creator 使用Qua
ZIP
加密压缩
解压
ZIP
文件 示例项目源码
文章:
QT
案例
Qt
Creator 使用Qua
ZIP
加密压缩
解压
ZIP
文件 https://blog.csdn.net/qq_35554617/article/details/129075481?spm=1001.2014.3001.5501 对应的示例项目源代码 介绍了在
QT
开发中如何利用Qua
ZIP
库进行
ZIP
文件的加密压缩和
解压
,
包
括编译zlib和Qua
zip
的步骤,以及设置密码进行加密解密的方法。注意在打
包
exe时需要
包
含qua
zip
.dll和zlib1.dll。 开发软件:
Qt
Creator 5.13.1 使用库:zlib-1.2.13 Qua
ZIP
QT
java.
zip
Mac OS Java SE
QT
java.
zip
(missing)
Qt
之Q
Zip
Reader
解压
文件
本资源可以参考博客,有详细的说明:https://blog.csdn.net/ManagerUser/article/details/125352499
其他技术讨论专区
476
社区成员
790,963
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章