forked from suyu/suyu
add std::error_code for std::filesystem exceptions
Resolves a case on Windows where an unmounted bitlocker protected volume containing an assigned game directory would crash Yuzu at start. May also resolve cases where a disconnected SMB volume causes similar crashes (needs testing)
This commit is contained in:
parent
04352a9aef
commit
21ecf01a17
1 changed files with 9 additions and 6 deletions
|
@ -528,38 +528,41 @@ void IterateDirEntriesRecursively(const std::filesystem::path& path,
|
||||||
// Generic Filesystem Operations
|
// Generic Filesystem Operations
|
||||||
|
|
||||||
bool Exists(const fs::path& path) {
|
bool Exists(const fs::path& path) {
|
||||||
|
std::error_code ec;
|
||||||
#ifdef ANDROID
|
#ifdef ANDROID
|
||||||
if (Android::IsContentUri(path)) {
|
if (Android::IsContentUri(path)) {
|
||||||
return Android::Exists(path);
|
return Android::Exists(path);
|
||||||
} else {
|
} else {
|
||||||
return fs::exists(path);
|
return fs::exists(path, ec);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
return fs::exists(path);
|
return fs::exists(path, ec);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsFile(const fs::path& path) {
|
bool IsFile(const fs::path& path) {
|
||||||
|
std::error_code ec;
|
||||||
#ifdef ANDROID
|
#ifdef ANDROID
|
||||||
if (Android::IsContentUri(path)) {
|
if (Android::IsContentUri(path)) {
|
||||||
return !Android::IsDirectory(path);
|
return !Android::IsDirectory(path);
|
||||||
} else {
|
} else {
|
||||||
return fs::is_regular_file(path);
|
return fs::is_regular_file(path, ec);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
return fs::is_regular_file(path);
|
return fs::is_regular_file(path, ec);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsDir(const fs::path& path) {
|
bool IsDir(const fs::path& path) {
|
||||||
|
std::error_code ec;
|
||||||
#ifdef ANDROID
|
#ifdef ANDROID
|
||||||
if (Android::IsContentUri(path)) {
|
if (Android::IsContentUri(path)) {
|
||||||
return Android::IsDirectory(path);
|
return Android::IsDirectory(path);
|
||||||
} else {
|
} else {
|
||||||
return fs::is_directory(path);
|
return fs::is_directory(path, ec);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
return fs::is_directory(path);
|
return fs::is_directory(path, ec);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue