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