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

浙公网安备 33010602011771号