diff options
Diffstat (limited to '')
| -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) { | |||
| 136 | bool CreateFullPath(const fs::path& path) { | 136 | bool CreateFullPath(const fs::path& path) { |
| 137 | LOG_TRACE(Common_Filesystem, "path {}", path); | 137 | LOG_TRACE(Common_Filesystem, "path {}", path); |
| 138 | 138 | ||
| 139 | if (path.has_extension()) { | 139 | // Removes trailing slashes and turns any '\' into '/' |
| 140 | return CreateDirs(path.parent_path()); | 140 | const auto new_path = SanitizePath(path.string(), DirectorySeparator::ForwardSlash); |
| 141 | |||
| 142 | if (new_path.rfind('.') == std::string::npos) { | ||
| 143 | // The path is a directory | ||
| 144 | return CreateDirs(new_path); | ||
| 141 | } else { | 145 | } else { |
| 142 | return CreateDirs(path); | 146 | // The path is a file |
| 147 | // Creates directory preceding the last '/' | ||
| 148 | return CreateDirs(new_path.substr(0, new_path.rfind('/'))); | ||
| 143 | } | 149 | } |
| 144 | } | 150 | } |
| 145 | 151 | ||