add io::directory_iterator

This commit is contained in:
MihailRis
2025-01-31 10:07:05 +03:00
parent c3066eebd3
commit 347d76870a
13 changed files with 182 additions and 64 deletions
+6 -8
View File
@@ -145,11 +145,10 @@ std::vector<io::path> EnginePaths::scanForWorlds() const {
auto folder = getWorldsFolder();
if (!io::is_directory(folder)) return folders;
for (const auto& entry : std::filesystem::directory_iterator(io::resolve(folder))) {
if (!entry.is_directory()) {
for (const auto& worldFolder : io::directory_iterator(folder)) {
if (!io::is_directory(worldFolder)) {
continue;
}
io::path worldFolder = folder / entry.path().filename().u8string();
auto worldFile = worldFolder / WorldFiles::WORLD_FILE;
if (!io::is_regular_file(worldFile)) {
continue;
@@ -271,9 +270,8 @@ std::vector<std::string> ResPaths::listdirRaw(const std::string& folderName) con
auto& root = roots[i];
auto folder = root.path / fs::u8path(folderName);
if (!io::is_directory(folder)) continue;
for (const auto& entry : fs::directory_iterator(io::resolve(folder))) {
auto name = entry.path().filename().u8string();
entries.emplace_back(root.name + ":" + folderName + "/" + name);
for (const auto& file : io::directory_iterator(folder)) {
entries.emplace_back(root.name + ":" + folderName + "/" + file.name());
}
}
return entries;
@@ -287,8 +285,8 @@ std::vector<io::path> ResPaths::listdir(
auto& root = roots[i];
io::path folder = root.path / folderName;
if (!io::is_directory(folder)) continue;
for (const auto& entry : fs::directory_iterator(io::resolve(folder))) {
entries.push_back(folder / entry.path().filename().u8string());
for (const auto& entry : io::directory_iterator(folder)) {
entries.push_back(folder / entry);
}
}
return entries;