環境:
QT3.3.8
vs2005
QDir dir("/home/Blinux/html");
if ( !dir.exists() )
{
//目錄不存在
}
QString strZip = ""/home/Blinux/html".zip";
m_pProcess->setWorkingDirectory(dir); //設置工作空間
m_pProcess->addArgument(QString("zip"));
m_pProcess->addArgument(QString("-r"));
m_pProcess->addArgument(QString("-j"));
m_pProcess->addArgument(strZip);
m_pProcess->addArgument( QString("*") );
int nn=0;
if(m_pProcess->start())
{
//QByteArray arr = m_pProcess->readStdout();
while(m_pProcess->isRunning())
{
nn++;
arr = m_pProcess->readStdout();
if(nn>10)
{
m_pProcess->tryTerminate();
m_pProcess->clearArguments();
return false;
}
sleep(100);
}
}
else
{
//啟動失敗
}
在windows系統下運行正常,將/home/Blinux/html壓縮為/home/Blinux下的html.zip文件;
在linux系統下未達到預期效果,在路徑/home/Blinux/下並沒有生成html.zip文件;
修改方法:
將m_pProcess->addArgument( QString("*") ); 改為m_pProcess->addArgument( QString("/home/Blinux/html") );
也就是說將相對路徑“*”,改為絕對路徑“/home/Blinux/html”,那么m_pProcess->setWorkingDirectory(dir); 也就沒有意義了,可以刪除。
-j 參數的一點說明:
zip -r -j /home/Blinux/html.zip /home/Blinux/html
