Skip to content
Snippets Groups Projects
Commit 95acfefc authored by Fabian Tërnava's avatar Fabian Tërnava
Browse files
parents 876f14db 19ff02de
No related branches found
No related tags found
No related merge requests found
......@@ -2,31 +2,51 @@
#include <algorithm>
namespace simox
{
std::vector<fs::path> fs::list_directory(const path& directory, bool local, bool sort)
namespace impl
{
std::vector<path> entries;
for (const auto& entry : directory_iterator(directory))
{
entries.push_back(entry.path());
}
if (sort)
{
std::sort(entries.begin(), entries.end());
}
if (local)
template <class DirectoryIteratorT>
std::vector<fs::path>
list_directory(const fs::path& directory, bool local, bool sort)
{
for (auto& entry : entries)
std::vector<fs::path> entries;
for (const auto& entry : DirectoryIteratorT(directory))
{
entries.push_back(entry.path());
}
if (sort)
{
entry = entry.filename();
std::sort(entries.begin(), entries.end());
}
if (local)
{
for (auto& entry : entries)
{
entry = entry.filename();
}
}
return entries;
}
return entries;
} // namespace impl
std::vector<fs::path>
fs::list_directory(const path& directory, bool local, bool sort)
{
return impl::list_directory<std::filesystem::directory_iterator>(directory, local, sort);
}
}
std::vector<std::filesystem::__cxx11::path>
fs::list_directory_recursive(const path& directory, bool local, bool sort)
{
return impl::list_directory<std::filesystem::recursive_directory_iterator>(
directory, local, sort);
}
} // namespace simox
......@@ -3,7 +3,6 @@
#include <filesystem>
#include <vector>
namespace simox::fs
{
using namespace std::filesystem;
......@@ -18,5 +17,11 @@ namespace simox::fs
* @return The entries in `directory`.
*/
std::vector<path> list_directory(const path& directory, bool local = false, bool sort = true);
}
/**
* @brief Same as list_directory(), but recurses into subdirectories.
*/
std::vector<path>
list_directory_recursive(const path& directory, bool local = false, bool sort = true);
} // namespace simox::fs
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment