Compartir vía


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 mydiry, 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++)