Common/FileUtil: Add CreateDirs() function as a wrapper around std::filesystem::create_directories().
This commit is contained in:
parent
616d57e7fc
commit
e479f92418
|
@ -193,7 +193,6 @@ bool Delete(const std::string& filename, IfAbsentBehavior behavior)
|
|||
return true;
|
||||
}
|
||||
|
||||
// Returns true if successful, or path already exists.
|
||||
bool CreateDir(const std::string& path)
|
||||
{
|
||||
DEBUG_LOG_FMT(COMMON, "{}: directory {}", __func__, path);
|
||||
|
@ -209,6 +208,22 @@ bool CreateDir(const std::string& path)
|
|||
return success;
|
||||
}
|
||||
|
||||
bool CreateDirs(std::string_view path)
|
||||
{
|
||||
DEBUG_LOG_FMT(COMMON, "{}: directory {}", __func__, path);
|
||||
|
||||
std::error_code error;
|
||||
auto native_path = StringToPath(path);
|
||||
bool success = fs::create_directories(native_path, error);
|
||||
// If the path was not created, check if it was a pre-existing directory
|
||||
std::error_code error_ignored;
|
||||
if (!success && fs::is_directory(native_path, error_ignored))
|
||||
success = true;
|
||||
if (!success)
|
||||
ERROR_LOG_FMT(COMMON, "{}: failed on {}: {}", __func__, path, error.message());
|
||||
return success;
|
||||
}
|
||||
|
||||
bool CreateFullPath(std::string_view fullPath)
|
||||
{
|
||||
DEBUG_LOG_FMT(COMMON, "{}: path {}", __func__, fullPath);
|
||||
|
|
|
@ -140,9 +140,12 @@ u64 GetSize(const std::string& path);
|
|||
// Overloaded GetSize, accepts FILE*
|
||||
u64 GetSize(FILE* f);
|
||||
|
||||
// Returns true if successful, or path already exists.
|
||||
// Creates a single directory. Returns true if successful or if the path already exists.
|
||||
bool CreateDir(const std::string& filename);
|
||||
|
||||
// Creates directories recursively. Returns true if successful or if the path already exists.
|
||||
bool CreateDirs(std::string_view filename);
|
||||
|
||||
// Creates the full path to the file given in fullPath.
|
||||
// That is, for path '/a/b/c.bin', creates folders '/a' and '/a/b'.
|
||||
// Returns true if creation is successful or if the path already exists.
|
||||
|
|
Loading…
Reference in New Issue