风逸飘 2021-03-08 12:18 采纳率: 0%
浏览 232

QProcess::start()方法的参数不能使用使用通配符吗?

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();
}

是否有人解决这个问题呢?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-25 19:42
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题