Merge pull request #9307 from Dentomologist/add-deleted-file-missing-warning-flag

Add File::Delete and File::DeleteDir warning flags
This commit is contained in:
Léo Lam
2020-12-11 02:06:28 +01:00
committed by GitHub
4 changed files with 130 additions and 5 deletions

View File

@ -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,10 +256,20 @@ 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))
{
if (behavior == IfAbsentBehavior::ConsoleWarning)
{
WARN_LOG_FMT(COMMON, "DeleteDir: {} does not exist", filename);
}
return true;
}
// check if a directory
if (!IsDirectory(filename))
{

View File

@ -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);