diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index 6039a449fa..0d41395209 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -135,7 +135,7 @@ bool IsFile(const std::string& path) // Deletes a given filename, return true on success // Doesn't supports deleting a directory -bool Delete(const std::string& filename) +bool Delete(const std::string& filename, IfAbsentBehavior behavior) { INFO_LOG_FMT(COMMON, "Delete: file {}", filename); @@ -154,7 +154,10 @@ bool Delete(const std::string& filename) // Return true because we care about the file not being there, not the actual delete. if (!file_info.Exists()) { - WARN_LOG_FMT(COMMON, "Delete: {} does not exist", filename); + if (behavior == IfAbsentBehavior::ConsoleWarning) + { + WARN_LOG_FMT(COMMON, "Delete: {} does not exist", filename); + } return true; } @@ -253,14 +256,17 @@ bool CreateFullPath(const std::string& fullPath) } // Deletes a directory filename, returns true on success -bool DeleteDir(const std::string& filename) +bool DeleteDir(const std::string& filename, IfAbsentBehavior behavior) { INFO_LOG_FMT(COMMON, "DeleteDir: directory {}", filename); // Return true because we care about the directory not being there, not the actual delete. if (!File::Exists(filename)) { - WARN_LOG_FMT(COMMON, "DeleteDir: {} does not exist", filename); + if (behavior == IfAbsentBehavior::ConsoleWarning) + { + WARN_LOG_FMT(COMMON, "DeleteDir: {} does not exist", filename); + } return true; } diff --git a/Source/Core/Common/FileUtil.h b/Source/Core/Common/FileUtil.h index e593a0541f..7e0b2e6990 100644 --- a/Source/Core/Common/FileUtil.h +++ b/Source/Core/Common/FileUtil.h @@ -136,12 +136,20 @@ bool CreateDir(const std::string& filename); // Creates the full path of fullPath returns true on success bool CreateFullPath(const std::string& fullPath); +enum class IfAbsentBehavior +{ + ConsoleWarning, + NoConsoleWarning +}; + // Deletes a given filename, return true on success // Doesn't supports deleting a directory -bool Delete(const std::string& filename); +bool Delete(const std::string& filename, + IfAbsentBehavior behavior = IfAbsentBehavior::ConsoleWarning); // Deletes a directory filename, returns true on success -bool DeleteDir(const std::string& filename); +bool DeleteDir(const std::string& filename, + IfAbsentBehavior behavior = IfAbsentBehavior::ConsoleWarning); // renames file srcFilename to destFilename, returns true on success bool Rename(const std::string& srcFilename, const std::string& destFilename);