std::experimental::filesystem:: directory_iterator
|
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) |