ドライブ上のファイルを別のファイルに置きたいと思います。研究をした後、私は「置き換える」方法がないことを発見した。代わりに、元のファイルを削除してから、一時ファイルをその場所に移動する必要があります。これを行うと、更新された一時ファイルが新しいディレクトリに移動することはありません。QT - ファイルを移動する方法
QTemporaryFile tempFile;
if (tempFile.open())
{
// Create temp file
QTextStream stream;
stream.setDevice(&tempFile);
document.save(stream, 4); // document is a QDomDocument object
tempFile.close();
// Replace original file with temp file
file.remove();
tempFile.rename("C:\\ProgramData\\Foo\\data.xml"); // I don't see the updated data.xml
}
プログラムコードのパスが正しいことを確認してください。私は私のために働いたことを思い出します。 – AlexanderVX
これは古典的なXY問題です。質問は別のものの文字通りの複製ですが、あなたはまったく名前を変更することに本当に気をつけません。あなたが探しているものは 'QSaveFile'です。書き込みが成功し、ファイルが置き換えられるか、または元のファイルが変更されずに保持されます。一時ファイルとアトミックマジックは、プラットフォームに依存しない方法で処理されます。 Win-win。 –