Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
En esta página se describe la directory_iterator clase de la implementación prestandard <experimental/filesystem> de la especificación técnica del sistema de archivos ISO C++ (N4100). Esta API no es la misma que la clase C++17 directory_iterator en <filesystem>. Usa firmas diferentes, incluido un conjunto más estrecho de constructores que no tiene ninguna directory_options sobrecarga. La implementación experimental se quitó a partir del conjunto de herramientas de Visual C++ (MSVC) 14.51 Microsoft. En su lugar, el nuevo código debe usar la clase C++17 directory_iterator .
Describe un iterador de entrada que se secuencia a través de los nombres de archivo de un directorio. Para un iterador X, la expresión *X se evalúa como un objeto de clase directory_entry que encapsula el nombre de archivo y todo lo que se conoce sobre su estado.
La clase almacena un objeto de tipo path, denominado mydir aquí para los fines de exposición, que representa el nombre del directorio que se va a secuenciar y un objeto de tipo directory_entry llamado myentry aquí, que representa el nombre de archivo actual en la secuencia de directorios. Un objeto construido predeterminado de tipo directory_entry tiene un nombre pathname vacío mydir y representa el iterador de fin de secuencia.
Por ejemplo, dado 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").
Sintaxis
class directory_iterator;
Constructores
| Constructor | Descripción |
|---|---|
directory_iterator |
Construye un iterador de entrada que se secuencia a través de los nombres de archivo de un directorio. |
Funciones miembro
| Función de miembro | Descripción |
|---|---|
increment |
Intenta avanzar al siguiente nombre de archivo en el directorio. |
Operators
| Operador | Descripción |
|---|---|
operator!= |
Devuelve !(*this == right). |
operator= |
Los operadores de asignación de miembros predeterminados 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(), devuelve *thiso realiza una copia del objeto , llama a increment()y, a continuación, devuelve la copia. |
Requisitos
Encabezado: <experimental/filesystem>
Espacio de nombres:std::experimental::filesystem
directory_iterator::directory_iterator
El primer constructor genera un iterador de fin 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 se ejecuta correctamente, almacenan el primer nombre de archivo en el directorio de myentry; de lo contrario, generan un iterador de fin de secuencia. La sobrecarga que toma un ec argumento notifica errores 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, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) = default;
Parameters
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 se ejecuta correctamente, almacena ese nombre de archivo en myentry; de lo contrario, genera un iterador de fin de secuencia.
directory_iterator& increment(error_code& ec) noexcept;
Parameters
ec
Código de error de estado.
directory_iterator::operator!=
El operador devuelve !(*this == right).
bool operator!=(const directory_iterator& right) const;
Parameters
right
que directory_iterator se compara con .directory_iterator
directory_iterator::operator=
Los operadores de asignación de miembros predeterminados se comportan según lo previsto.
directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) = default;
Parameters
right
objeto directory_iterator que se copia en .directory_iterator
directory_iterator::operator==
El operador true devuelve solo si y *thisright son iteradores de fin de secuencia o ambos no son iteradores de fin de secuencia.
bool operator==(const directory_iterator& right) const;
Parameters
right
que directory_iterator 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, a continuación, devuelve *this. La segunda función miembro realiza una copia del objeto, llama a increment()y, a continuación, devuelve la copia.
directory_iterator& operator++();
directory_iterator operator++(int);
Parameters
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.