Ubuntu20.04系统下使用Qt 5.9,利用QProcess对象调用Linux系统的"zip"命令来压缩文件。
比如:/home目录下有多个日志文件:1.log、2.log、3.log……n.log。我想将这些日志文件打包到一个压缩包内。
终端命令行下可通过:zip logs.zip *.log 来实现。
但是,通过如下代码却无法实现。
#include <QGuiApplication>
#include <QDebug>
#include <QProcess>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QProcess process;
QString src = "*.log"; //含有通配符
// QString src = "1.log"; //若不用*号通配符,该代码可以成功运行
QString workPath = "/home/";
QString zipfile = "logs.zip"; //压缩包文件名
process.setWorkingDirectory(workPath); //cd workPath
QStringList args;
args << "-r" << zipfile <<src;
process.start("zip", args);
while (false == process.waitForFinished(1000)) //每隔一秒判断是否压缩完毕
{
qDebug() << "压缩中...";
}
process.close();
return app.exec();
}
是否有人解决这个问题呢?