std::experimental::filesystem::recursive_directory_iterator
Min standard notice:
Header: <experimental/filesystem>
recursive_directory_iterator is a LegacyInputIterator that iterates over the directory_entry elements of a directory, and, recursively, over the entries of all subdirectories. The iteration order is unspecified, except that each directory entry is visited only once.
# Declarations
class recursive_directory_iterator;
(filesystem TS)
# Notes
A recursive_directory_iterator typically holds a reference-counted pointer (to satisfy shallow-copy semantics of LegacyInputIterator) to an implementation object, which holds:
# Example
#include <experimental/filesystem>
#include <fstream>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
fs::create_directories("sandbox/a/b");
std::ofstream("sandbox/file1.txt");
fs::create_symlink("a", "sandbox/syma");
for (const fs::directory_entry& entry : fs::recursive_directory_iterator("sandbox"))
std::cout << entry << '\n';
fs::remove_all("sandbox");
}