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 *thisright 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 que toman un pval argumento lo almacenan 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. Las sobrecargas que toman un options argumento controlan cómo se enumera el directorio. Sobrecargas que toman errores ec de informe de argumentos en ec lugar de producir una excepción. Los constructores de copia y movimiento se comportan según lo previsto.

directory_iterator() noexcept;
explicit directory_iterator(const path& pval);
directory_iterator(const path& pval, directory_options options);
directory_iterator(const path& pval, error_code& ec) noexcept;
directory_iterator(const path& pval, directory_options options, 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.

options
Valor directory_options que controla cómo se enumera el directorio. El valor predeterminado es directory_options::none.

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);

Parámetros

ec
Código de error de estado.

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
Argumento ficticio. Se trata de una convención de C++ que solo se usa para distinguir el operador de incremento de postfijo del operador de incremento de prefijo. El estándar de C++ requiere que el formulario de postfijo tome un parámetro int ficticio.

Consulte también

<filesystem>
Referencia de archivos de encabezado
Exploración del sistema de archivos (C++)