Clase directory_iterator
Describe un iterador de entrada que establece secuencias en los nombres de archivo en un directorio. En el caso de un iterador X
, la expresión *X
se evalúa como un objeto de la clase directory_entry
que contiene el nombre de archivo y cualquier elemento conocido sobre su estado.
La clase almacena un objeto de tipo path
, denominado mydir
aquí a efectos de la exposición, que representa el nombre del directorio que se va a secuenciar y un objeto de directory_entry
tipo denominado myentry
aquí, que representa el nombre de archivo actual en la secuencia del directorio. Un objeto construido de forma predeterminada de tipo directory_entry
tiene un nombre de ruta de acceso mydir
vacío y representa el iterador de final de secuencia.
Por ejemplo, si tenemos el directorio abc
con entradas def
y ghi
, el código:
for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());
llama a visit
con los argumentos path("abc/def")
y path("abc/ghi")
.
Para obtener más información y ejemplos de código, vea Exploración del sistema de archivos (C++).
Sintaxis
class directory_iterator;
Constructores
Constructor | Descripción |
---|---|
directory_iterator |
Construye un iterador de entrada que establece secuencias en los nombres de archivo en un directorio. |
Funciones miembro
Función de miembro | Descripción |
---|---|
increment |
Intenta avanzar al siguiente nombre de archivo del directorio. |
Operadores
Operador | Descripción |
---|---|
operator!= |
Devuelve !(*this == right) . |
operator= |
Los operadores predeterminados de asignación de miembros se comportan según lo previsto. |
operator== |
Devuelve true solo si y *this right son iteradores de fin de secuencia o ambos no son iteradores de fin de secuencia. |
operator* |
Devuelve myentry . |
operator-> |
Devuelve &**this . |
operator++ |
Llama a increment() y después devuelve *this o realiza una copia del objeto, llama a increment() y, después, devuelve la copia. |
Requisitos
Encabezado: <filesystem>
Espacio de nombres: std::filesystem
directory_iterator::directory_iterator
El primer constructor crea un iterador de final de secuencia. Los constructores segundo y tercero almacenan pval
en mydir
y, a continuación, intentan abrir y leer mydir
como un directorio. Si es correcto, almacenan el primer nombre de archivo en el directorio de myentry
; de lo contrario, generan un iterador de final de secuencia.
El constructor predeterminado se comporta según lo previsto.
directory_iterator() noexcept;
explicit directory_iterator(const path& pval);
directory_iterator(const path& pval, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) noexcept = default;
Parámetros
pval
Ruta de acceso del nombre de archivo almacenado.
ec
Código de error de estado.
directory_iterator
Objeto almacenado .
directory_iterator::increment
La función intenta avanzar al siguiente nombre de archivo del directorio. Si es correcto, almacena ese nombre de archivo en myentry
; en caso contrario, produce un iterador de final de secuencia.
directory_iterator& increment(error_code& ec) noexcept;
directory_iterator::operator!=
El operador miembro devuelve !(*this == right)
.
bool operator!=(const directory_iterator& right) const;
Parámetros
right
que directory_iterator
se compara con .directory_iterator
directory_iterator::operator=
Los operadores predeterminados de asignación de miembros se comportan según lo previsto.
directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;
Parámetros
right
La clase directory_iterator
que se copia en directory_iterator
.
directory_iterator::operator==
El operador miembro solo devuelve true
si ambos *this
y right
son iteradores de fin de secuencia o ambos no son iteradores de fin de secuencia.
bool operator==(const directory_iterator& right) const;
Parámetros
right
El directory_iterator que se compara con directory_iterator
.
directory_iterator::operator*
El operador miembro devuelve myentry
.
const directory_entry& operator*() const;
directory_iterator::operator->
La función miembro devuelve &**this
.
const directory_entry * operator->() const;
directory_iterator::operator++
La primera función miembro llama a increment()
y luego devuelve *this
. La segunda función miembro hace una copia del objeto, llama a increment()
y luego devuelve la copia.
directory_iterator& operator++();
directory_iterator& operator++(int);
Parámetros
int
Número de incrementos.
Consulte también
<filesystem>
Referencia de archivos de encabezado
Exploración del sistema de archivos (C++)