mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-09 15:41:15 +00:00
Codechange: Simplify FioCreateDirectory.
`std::filesystem` provides `create_directories()` as a cross-platform way to create a directory tree.
This commit is contained in:
parent
6458980413
commit
5a523cf212
@ -348,24 +348,9 @@ FILE *FioFOpenFile(const std::string &filename, const char *mode, Subdirectory s
|
||||
*/
|
||||
void FioCreateDirectory(const std::string &name)
|
||||
{
|
||||
auto p = name.find_last_of(PATHSEPCHAR);
|
||||
if (p != std::string::npos) {
|
||||
std::string dirname = name.substr(0, p);
|
||||
DIR *dir = ttd_opendir(dirname.c_str());
|
||||
if (dir == nullptr) {
|
||||
FioCreateDirectory(dirname); // Try creating the parent directory, if we couldn't open it
|
||||
} else {
|
||||
closedir(dir);
|
||||
}
|
||||
}
|
||||
|
||||
/* Ignore directory creation errors; they'll surface later on, and most
|
||||
* of the time they are 'directory already exists' errors anyhow. */
|
||||
#if defined(_WIN32)
|
||||
CreateDirectory(OTTD2FS(name).c_str(), nullptr);
|
||||
#else
|
||||
mkdir(OTTD2FS(name).c_str(), 0755);
|
||||
#endif
|
||||
/* Ignore directory creation errors; they'll surface later on. */
|
||||
std::error_code error_code;
|
||||
std::filesystem::create_directories(OTTD2FS(name), error_code);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user