QT:在qt中使用QProcess类执行tar指令

Qt提供了一个QProcess类用于启动外部程序并与之通信。这个类是异步工作的,而且在后台执行,这样用户界面就可以始终保持响应。

QProcess::start()与QProcess::execute()都能完成启动外部程序的任务,二者有什么区别呢?区别在于start()是非阻塞的,而execute()是阻塞的。专业点讲,execute()=start()+waitforFinished()。

 

        //3、执行tar指令
        QProcess pTar;
        QString program = "tartool";
        QStringList arguments;

        QString sourceDir = armFileName;//+"/*";
        sourceDir = QDir::toNativeSeparators(sourceDir);
        QString tarGetDirName = armAppTarName;
        tarGetDirName = QDir::toNativeSeparators(tarGetDirName);
        arguments << sourceDir << tarGetDirName << "armApp.tar.gz";
        QString showTar = arguments.join(" ");
        showMsg("执行[tartool "+showTar+"]");
        //执行
        //QDir::setCurrent(armFileName);
        int res = pTar.execute(program,arguments);
        if(!res)
        {
           showMsg("执行成功");
        }
        pTar.close();    

  

 

posted @ 2021-01-29 18:11  一场雨  阅读(726)  评论(0编辑  收藏  举报