C_and_CPP 板


LINE

我的开发平台是 win7 工具是QT Creator 版本是Qt Core 5.15.2 我想使用QProcess呼叫7z.exe帮我解压缩 但不是单纯地解压缩在硬碟里面 而是把档案解压缩後的meta data导流到我的程式变数里 让我可以做後续的动作 原本我是使用QT内建的 QByteArray QZipReader::fileData(QString filePath) 现在我想用7z取代QZipReader。 但目前卡在不知道该怎麽取得7z解压缩後的fileData 虽然我也可以让7z解压缩到硬碟之後 openFile使用QImage::loadFromData(QByteArray); 然後再把那个暂时档案给删掉。 但如果可以的话我希望可以直接解压缩到我的程式变数里 但我测试了一个早上都还是失败.... 不知道该往哪里去找答案... 以下是我的程式码 首先得到压缩档内的档案名称没有问题 成功利用7z取得某一压缩档内所有的档案名称(路径) QProcess proccess{nullptr}; QString exe = "7z.exe"; QStringList args; args << "l" << "-slt" << mPath; proccess.start(exe, args); proccess.waitForFinished(); QString prefix{"Path = "}; while (!proccess.atEnd()){ QString line{QString::fromLocal8Bit(proccess.readLine())}; if (!line.startsWith(prefix)) continue; line.chop(2); if ( !line.endsWith(".jpg", Qt::CaseInsensitive) && !line.endsWith(".png", Qt::CaseInsensitive) && !line.endsWith(".gif", Qt::CaseInsensitive) && !line.endsWith(".bmp", Qt::CaseInsensitive) ) continue; mInfoList.enqueue(line.mid(prefix.length())); } 但是在取得fileData这一块我却失败了 指令的部分在command line是通过的,可以解压单个档案到该目录下 QByteArray GalleryReader::getZipFileData(QString filePath){ QProcess process{nullptr}; QString exe = "7z.exe"; QStringList args; args << "x" << mPath << filePath; qDebug() << "" << args ; process.start(exe, args); process.waitForFinished(); return process.readAllStandardOutput(); } 然而QProcess不论使用哪个read 的函式,都没有读到东西 readLine 也只会得到"\r\n" 希望有人能出手相救,感谢阅读 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.192.225.144 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1620449560.A.BCB.html
1F:→ longlongint: 你预期 7zip 解压缩档案时,标准输出会是什麽内容? 05/08 14:27
2F:→ longlongint: 是不是有漏加参数 05/08 14:30
4F:→ mmmmei: zip-into-qbytearray 05/08 14:49
5F:推 chchwy: readLine()读取的是stdout 你要叫7z解到stdout 05/10 12:09







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP