diff --git a/src/resource_manager.cpp b/src/resource_manager.cpp index 7468b89..def6855 100644 --- a/src/resource_manager.cpp +++ b/src/resource_manager.cpp @@ -1,4 +1,5 @@ #include +#include #include #include "resource_manager.hpp" @@ -27,15 +28,14 @@ std::vector ResourceManager::getFiles(fs::path path) const { fs::recursive_directory_iterator dir(path), end; std::vector result; - // on boucle sur tous les fichiers du dossier - // et de ses sous-dossiers et on les garde en mémoire - while (dir != end) { - if (fs::is_regular_file(dir->path())) { - result.push_back(dir->path()); - } + // récupération de la liste de tous les fichiers + // (et uniquement des fichiers, d'où le filtre) + std::copy_if(dir, end, std::back_inserter(result), [](fs::path path){ + return fs::is_regular_file(path); + }); - ++dir; - } + // tri par ordre alphabétique + std::sort(result.begin(), result.end()); return result; }