首页 > 解决方案 > QProcess解压中途如何抓到数据?

问题描述

出于某种原因,我不想一次解压缩整个 7z 文件。

我想通过使用 QProcess 调用 7z.exe 来提取 QByteArray 中的单个图像文件。

但是我没有找到抓到7z解压过程的dataStream的方法。

QProcess::read() 方法只能读取不是我想要的命令行文本结果。

目前,我通过将 .7z 文件中的图像文件解压缩到磁盘中来实现该目的,然后使用 QImage::loadFromData() 方法获取图像的 QByteArray。

QByteArray 加载完成后,我从磁盘中删除了该临时图像文件。

显然,这是一项非常繁重的工作。

有时它会降低速度,或者阻塞整个应用程序,甚至当 7z 文件中有大量图像文件时应用程序崩溃。

有没有办法在 QProcess 解压过程中捕获数据?

标签: qt7zipqbytearray

解决方案


推荐阅读