我想用另一個文件替換驅動器上的文件。經過研究,我發現沒有「替代」方法。相反,我將不得不刪除我的原始文件,然後將我的臨時文件移動到它的位置。當我這樣做時,我沒有看到我的更新的臨時文件被移到它的新目錄中。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'。它確保操作是原子操作:寫入成功並替換文件,或原始文件保留不變。臨時文件和原子魔法將以平臺無關的方式爲您處理。雙贏。 –