mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-12-01 02:25:39 +00:00
Fixed an issue where placing a directory with no access permissions inside a system folder crashed the application on startup
This commit is contained in:
parent
ce580a269f
commit
d380db8a1f
|
@ -67,29 +67,42 @@ namespace Utils
|
|||
if (!isDirectory(genericPath))
|
||||
return contentList;
|
||||
|
||||
if (recursive) {
|
||||
try {
|
||||
if (recursive) {
|
||||
#if defined(_WIN64)
|
||||
for (auto& entry : std::filesystem::recursive_directory_iterator(
|
||||
Utils::String::stringToWideString(genericPath))) {
|
||||
contentList.emplace_back(
|
||||
Utils::String::wideStringToString(entry.path().generic_wstring()));
|
||||
for (auto& entry : std::filesystem::recursive_directory_iterator(
|
||||
Utils::String::stringToWideString(genericPath))) {
|
||||
contentList.emplace_back(
|
||||
Utils::String::wideStringToString(entry.path().generic_wstring()));
|
||||
#else
|
||||
for (auto& entry : std::filesystem::recursive_directory_iterator(genericPath)) {
|
||||
contentList.emplace_back(entry.path().generic_string());
|
||||
for (auto& entry : std::filesystem::recursive_directory_iterator(genericPath)) {
|
||||
contentList.emplace_back(entry.path().generic_string());
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else {
|
||||
#if defined(_WIN64)
|
||||
for (auto& entry : std::filesystem::directory_iterator(
|
||||
Utils::String::stringToWideString(genericPath))) {
|
||||
contentList.emplace_back(
|
||||
Utils::String::wideStringToString(entry.path().generic_wstring()));
|
||||
#else
|
||||
for (auto& entry : std::filesystem::directory_iterator(genericPath)) {
|
||||
contentList.emplace_back(entry.path().generic_string());
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
catch (...) {
|
||||
#if defined(_WIN64)
|
||||
for (auto& entry : std::filesystem::directory_iterator(
|
||||
Utils::String::stringToWideString(genericPath))) {
|
||||
contentList.emplace_back(
|
||||
Utils::String::wideStringToString(entry.path().generic_wstring()));
|
||||
LOG(LogError) << "FileSystemUtil::getDirContent(): Couldn't read directory " << "\""
|
||||
<< Utils::String::replace(path, "/", "\\")
|
||||
<< "\", permission problems?";
|
||||
#else
|
||||
for (auto& entry : std::filesystem::directory_iterator(genericPath)) {
|
||||
contentList.emplace_back(entry.path().generic_string());
|
||||
LOG(LogError) << "FileSystemUtil::getDirContent(): Couldn't read directory " << "\""
|
||||
<< path << "\", permission problems?";
|
||||
#endif
|
||||
}
|
||||
return contentList;
|
||||
}
|
||||
|
||||
contentList.sort();
|
||||
|
|
Loading…
Reference in a new issue