directory_iterator (Clase)

 

Publicado: octubre de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

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

llamará a visit con los argumentos path("abc/def") y path("abc/ghi").

Para obtener más información y ejemplos de código, consulte exploración de sistema de archivos (C++).

class directory_iterator;  

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;  

El primer constructor crea un iterador de final de secuencia. Los constructores segundo y tercero almacenan pval en mydir y luego 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.

Los constructores predeterminados se comportan según lo previsto.

directory_iterator& increment(error_code& ec) noexcept;  

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.

bool operator!=(const directory_iterator& right) const;

El operador miembro devuelve !(*this == right).

directory_iterator& operator=(const directory_iterator&) = default;  
directory_iterator& operator=(directory_iterator&&) noexcept = default;  

Los operadores predeterminados de asignación de miembros se comportan según lo previsto.

bool operator==(const directory_iterator& right) const;

El operador miembro solo devuelve true si *this y right son iteradores de final de secuencia o si ninguno de los dos lo son.

const directory_entry& operator*() const;

El operador miembro devuelve myentry.

const directory_entry * operator->() const;

La función miembro devuelve &**this.

directory_iterator& operator++();

directory_iterator& operator++(int);

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.

Encabezado:

Espacio de nombres: std::experimental::filesystem::v1

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

Mostrar: