diff options
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/file_util.cpp | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp index 8e061ff6c..a286b9341 100644 --- a/src/common/file_util.cpp +++ b/src/common/file_util.cpp @@ -136,10 +136,16 @@ bool CreateDirs(const fs::path& path) {  bool CreateFullPath(const fs::path& path) {      LOG_TRACE(Common_Filesystem, "path {}", path); -    if (path.has_extension()) { -        return CreateDirs(path.parent_path()); +    // Removes trailing slashes and turns any '\' into '/' +    const auto new_path = SanitizePath(path.string(), DirectorySeparator::ForwardSlash); + +    if (new_path.rfind('.') == std::string::npos) { +        // The path is a directory +        return CreateDirs(new_path);      } else { -        return CreateDirs(path); +        // The path is a file +        // Creates directory preceding the last '/' +        return CreateDirs(new_path.substr(0, new_path.rfind('/')));      }  } | 
