• 7095阅读
  • 14回复

[提问]Qt中解压.rar或者.zip之类的压缩文件 [复制链接]

上一主题 下一主题
离线小鸟一只
 
只看楼主 倒序阅读 楼主  发表于: 2013-03-07
关键词: ziprardecompress
各位,

       Qt中如何解压.rar或者.zip之类的压缩文件,Qt中有没有这样的类,还是一定要使用QProcess调用其他的工具来解压。

多谢!


离线0xffffh

只看该作者 1楼 发表于: 2013-03-07
用7Z的库或者用调用7z.exe很多安装包中都包有7z.exe。
离线roywillow

只看该作者 2楼 发表于: 2013-03-07
不知道qt5里公开的zlib接口能不能用
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线小鸟一只
只看该作者 3楼 发表于: 2013-03-07
回 1楼(0xffffh) 的帖子
我通过一下代码调用7z来进行解压,发现不起作用,是不是有哪个地方不对啊,
        QProcess pro;
        QString cmdline = "7z.exe x xxxxxxx.rar";
        pro.setWorkingDirectory(currentPath);
        pro.start(cmdline);
  
        if(!pro.waitForStarted())
            return;

        if(!pro.waitForFinished())
            return;
离线yuncode.net

只看该作者 4楼 发表于: 2013-03-07
问题是怎么调用7z解压?
云代码 http://yuncode.net
离线小鸟一只
只看该作者 5楼 发表于: 2013-03-07
回 4楼(yuncode.net) 的帖子
应该是使用QProcess类吧,不过我还没有成功啊
离线hitler++

只看该作者 6楼 发表于: 2013-03-07
去找一个开源的zip库,qt似乎没有自带
离线XChinux

只看该作者 7楼 发表于: 2013-03-07
用7za(只有一个文件)吧(7z.exe,它依赖若干动态库的),放在你可执行目录下调用,看看7z的帮助说明,看参数如何加。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线小鸟一只
只看该作者 8楼 发表于: 2013-03-08
这个问题已经解决了,是使用QProcess调用7z的命令解压出来的,call QProcess的execute函数具体的命令格式如下,7z.exe e source.rar -odestURL,在使用QProcess的execute函数时要注意,e后面跟着的参数一定要输入所需解压的文件的具体路径,如I:\Project\Qt_Creator\upgradeTool\upgradeTool-build-Desktop-Debug\debug\test.rar,-o后面的参数一定要紧挨着o,不能有空格,然后也要写出具体的输出目录。
离线小鸟一只
只看该作者 9楼 发表于: 2013-03-08
但是有一点就是QProcess的start()函数与execute()函数有什么区别啊
离线kaon

只看该作者 10楼 发表于: 2013-03-08
zlib应该可用
离线roywillow

只看该作者 11楼 发表于: 2013-03-08
回 9楼(小鸟一只) 的帖子
好像一个是立即返回,一个是阻断当前事件循环
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线小鸟一只
只看该作者 12楼 发表于: 2013-03-08
回 11楼(roywillow) 的帖子
execute函数是立即返回,start函数是阻断当前事件循环?但是我使用start函数是,调用7z没有任何反应,“qtcreator应用程序输出”都没有任何关于7z的输出,这个又是怎么回事?
离线小鸟一只
只看该作者 13楼 发表于: 2013-03-08
回 8楼(小鸟一只) 的帖子
这个忘了贴相关的链接了http://blog.csdn.net/ymc0329/article/details/6791668
离线roywillow

只看该作者 14楼 发表于: 2013-03-08
回 12楼(小鸟一只) 的帖子
文档应该能解决一切……这玩意我一直没用过,所以不敢继续臆测哦
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个