fs/FileSystem: add CreateDirectoryNoThrow()

This commit is contained in:
Max Kellermann 2022-11-28 14:13:10 +01:00
parent 1da974e3fa
commit 4ded1ae67b
2 changed files with 11 additions and 1 deletions

View File

@ -67,6 +67,16 @@ StatFile(Path file, struct stat &buf, bool follow_symlinks = true)
#endif #endif
static inline bool
CreateDirectoryNoThrow(Path path) noexcept
{
#ifdef _WIN32
return CreateDirectory(path.c_str(), nullptr);
#else
return mkdir(path.c_str(), 0777);
#endif
}
/** /**
* Truncate a file that exists already. Throws std::system_error on * Truncate a file that exists already. Throws std::system_error on
* error. * error.

View File

@ -314,7 +314,7 @@ GetAppRuntimeDir() noexcept
#ifdef USE_XDG #ifdef USE_XDG
if (const auto user_dir = GetUserRuntimeDir(); !user_dir.IsNull()) { if (const auto user_dir = GetUserRuntimeDir(); !user_dir.IsNull()) {
auto dir = user_dir / app_filename; auto dir = user_dir / app_filename;
mkdir(dir.c_str(), 0777); CreateDirectoryNoThrow(dir);
return dir; return dir;
} }
#endif #endif