Namespaces
Variants

std::experimental::filesystem:: directory_iterator

From cppreference.net
Definido en el encabezado <experimental/filesystem>
class directory_iterator ;
(filesystem TS)

directory_iterator es un LegacyInputIterator que itera sobre los elementos directory_entry de un directorio (pero no visita los subdirectorios). El orden de iteración no está especificado, excepto que cada entrada de directorio se visita solo una vez. Las rutas especiales dot y dot-dot se omiten.

Si el directory_iterator avanza más allá de la última entrada del directorio, se vuelve igual al iterador construido por defecto, también conocido como el iterador final. Dos iteradores finales siempre son iguales, desreferenciar o incrementar el iterador final es comportamiento indefinido.

Si un archivo o directorio se elimina o se agrega al árbol de directorios después de que se haya creado el iterador de directorio, no está especificado si el cambio se observará a través del iterador.

Contenidos

Tipos de miembros

Tipo de miembro Definición
value_type filesystem::directory_entry
difference_type std::ptrdiff_t
pointer const filesystem::directory_entry*
reference const filesystem::directory_entry&
iterator_category std::input_iterator_tag

Funciones miembro

construye un iterador de directorio
(función miembro pública)
(destructor)
destructor por defecto
(función miembro pública)
asigna contenidos
(función miembro pública)
accede a la entrada apuntada
(función miembro pública)
avanza a la siguiente entrada
(función miembro pública)

Funciones no miembro

soporte para bucle for basado en rangos
(función)

Además, operator == y operator ! = están proporcionados, ya sea como miembros o como no-miembros, según lo requerido por LegacyInputIterator .

Ejemplo

#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"};
    std::ofstream{"sandbox/file2.txt"};
    for (const fs::directory_entry& entry : fs::directory_iterator{"sandbox"})
        std::cout << entry << '\n';
    fs::remove_all("sandbox");
}

Salida posible:

"sandbox/a"
"sandbox/file1.txt"
"sandbox/file2.txt"

Véase también

un iterador a los contenidos de un directorio y sus subdirectorios
(clase)
opciones para iterar contenidos de directorios
(enum)
una entrada de directorio
(clase)