summaryrefslogtreecommitdiff
path: root/Source/Core/Common/FileSearch.cpp
diff options
context:
space:
mode:
authorspycrab <spycrab@users.noreply.github.com>2019-06-20 18:40:28 +0200
committerGitHub <noreply@github.com>2019-06-20 18:40:28 +0200
commitf08aa2d842e980471d41992e7949c97c9661432d (patch)
treec4f80ca21391d4b4658309aaf65bdbad1abb9dd7 /Source/Core/Common/FileSearch.cpp
parentb11f63056569f7472113b8972d74b4a93ad09755 (diff)
parent63bb646721517a4b00c1b19d137dc5be1a14ec8f (diff)
Merge pull request #8209 from JosJuice/filesystem-fix
Fix opening controller config when there is no profile directory
Diffstat (limited to 'Source/Core/Common/FileSearch.cpp')
-rw-r--r--Source/Core/Common/FileSearch.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/Source/Core/Common/FileSearch.cpp b/Source/Core/Common/FileSearch.cpp
index 561e1136e6..b37e0cc5cd 100644
--- a/Source/Core/Common/FileSearch.cpp
+++ b/Source/Core/Common/FileSearch.cpp
@@ -97,16 +97,20 @@ std::vector<std::string> DoFileSearch(const std::vector<std::string>& directorie
};
for (const auto& directory : directories)
{
- if (recursive)
+ const fs::path directory_path = fs::u8path(directory);
+ if (fs::is_directory(directory_path)) // Can't create iterators for non-existant directories
{
- // TODO use fs::directory_options::follow_directory_symlink ?
- for (auto& entry : fs::recursive_directory_iterator(fs::u8path(directory)))
- add_filtered(entry);
- }
- else
- {
- for (auto& entry : fs::directory_iterator(fs::u8path(directory)))
- add_filtered(entry);
+ if (recursive)
+ {
+ // TODO use fs::directory_options::follow_directory_symlink ?
+ for (auto& entry : fs::recursive_directory_iterator(std::move(directory_path)))
+ add_filtered(entry);
+ }
+ else
+ {
+ for (auto& entry : fs::directory_iterator(std::move(directory_path)))
+ add_filtered(entry);
+ }
}
}