我需要在QT内部压缩一个非常大的文件(最多 13GB ),同时不会溢出内存并使用 QProcess 正确获取zip的输出。这是我得到的代码:
void zipFile(QString filename, QStringList files)
{
QProcess process;
process.setStandardOutputFile(filename);
process.setProgram("zip");
process.setArguments(QStringList() << "-jr" << "-" << files);
process.start(QProcess::ReadWrite | QProcess::Unbuffered);
if (process.waitForStarted()) {
process.waitForFinished(); /* Timeout here */
if (process.exitStatus() != QProcess::NormalExit) {
/* Deal with the error */
return;
}
} else {
/* Deal with the error */
}
}
但问题是 waitForFinished 函数超时并且我的进程退出时出现问题,我不想删除超时。使用 QProcess ?
有更好的方法