1

次のように、によって返されたディレクトリにuntarあるファイルを取得しようとしています。QProcessQDir::tempPath()

extract.start("tar", QStringList() << "-xvzf" + QDir::tempPath() + "/thefile.tar.gz");

を見て、抽出の正しい出力を取得しますが、最後に抽出されたファイルstandardOuputQProcessありません。シェルから手動で実行tarするとファイルが正常に動作するため、ファイルが破損していないことはわかっています。アクセス許可の問題を想定していましたが、実際にはアプリケーションと共にファイルを一時ディレクトリにダウンロードしているため、アプリケーションには書き込みアクセスが必要です。

編集:ホームディレクトリのファイルでも試してみましたが、確かにそこにありますが、一時ディレクトリにあるのと同じ結果が得られ、詳細な出力は成功を示しますが、結果のファイルはありません。

4

1 に答える 1

1

デフォルトでは、実行可能ファイルのバイナリのフォルダーである可能性が高い作業ディレクトリを設定する必要があります。

QProcess::setWorkingDirectoryで作業ディレクトリを設定できます

于 2013-11-29T17:29:40.213 に答える