From f64e57442c813fc76bc775b4dc9ac41e18add80f Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Sun, 5 Oct 2025 16:17:12 -0700 Subject: [PATCH] DeleteDirRecursively: Don't report error for absent directory Check if the return value of std::filesystem::remove_all is -1 rather than 0; the former is the specified return value if there's an error while 0 just means the directory already didn't exist (which is the end result we want). Previously error messages such as the following were possible: E[COMMON]: DeleteDirRecursively: [path]/User/RedirectSession/ failed The operation completed successfully. Also adds a period in the error string to make it look nicer. --- Source/Core/Common/FileUtil.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index 21b8a1bf3cb..4521be00be6 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -528,9 +528,9 @@ bool DeleteDirRecursively(const std::string& directory) std::error_code error; const std::uintmax_t num_removed = std::filesystem::remove_all(StringToPath(directory), error); - const bool success = num_removed != 0 && !error; + const bool success = num_removed != static_cast(-1) && !error; if (!success) - ERROR_LOG_FMT(COMMON, "{}: {} failed {}", __func__, directory, error.message()); + ERROR_LOG_FMT(COMMON, "{}: {} failed. {}", __func__, directory, error.message()); return success; }