Improve handling when writing to temporary files

Let QTemporaryFile remove incomplete written file when error occurs.
"XXXXXX" template is not strictly required according to Qt doc.
This commit is contained in:
Chocobo1
2021-09-15 23:17:24 +08:00
parent fa8786e230
commit 9673be17cb

View File

@@ -46,14 +46,13 @@ namespace
if (!filePath.isEmpty()) if (!filePath.isEmpty())
return Utils::IO::saveToFile(filePath, replyData).has_value(); return Utils::IO::saveToFile(filePath, replyData).has_value();
QTemporaryFile tmpfile {Utils::Fs::tempPath() + "XXXXXX"}; QTemporaryFile file {Utils::Fs::tempPath()};
tmpfile.setAutoRemove(false); if (!file.open() || (file.write(replyData) != replyData.length()) || !file.flush())
if (!tmpfile.open())
return false; return false;
filePath = tmpfile.fileName(); file.setAutoRemove(false);
return (tmpfile.write(replyData) == replyData.length()); filePath = file.fileName();
return true;
} }
} }