我在使用scp复制文件时遇到问题。我使用Qt并使用QProcess使用scp复制我的文件。当发生不好的事情时,我总是得到exitCode = 1。它总是返回1.我尝试用终端复制文件。我第一次收到错误“权限被拒绝”,退出代码是1.然后我拔掉了我的以太网电缆并得到错误“网络无法访问”。并且返回代码仍然是1.它使我非常困惑,因为在我的应用程序中我必须区分这些类型的错误。 任何帮助表示赞赏。非常感谢你!
答案 0 :(得分:0)
将此代码视为一个工作示例:
bool Utility::untarScript(QString filename, QString& statusMessages)
{
// Untar tar-bzip2 file, only extract script to temp-folder
QProcess tar;
QStringList arguments;
arguments << "-xvjf";
arguments << filename;
arguments << "-C";
arguments << QDir::tempPath();
arguments << "--strip-components=1";
arguments << "--wildcards";
arguments << "*/folder.*";
// tar -xjf $file -C $tmpDir --strip-components=1 --wildcards
tar.start("tar", arguments);
// Wait for tar to finish
if (tar.waitForFinished(10000) == true)
{
if (tar.exitCode() == 0)
{
statusMessages.append(tar.readAllStandardError());
return true;
}
}
statusMessages.append(tar.readAllStandardError());
statusMessages.append(tar.readAllStandardOutput());
statusMessages.append(QString("Exitcode = %1\n").arg(tar.exitCode()));
return false;
}
它收集所有可用的过程输出供您分析。特别要看readAllStandardError()。