clase directory_entry

Describe un objeto devuelto por desreferenciar o directory_iterator .recursive_directory_iterator Un directory_entry encapsula y path , como optimización, puede almacenar en caché los atributos de archivo que se obtienen al iterar un directorio.

Sintaxis

class directory_entry;

Comentarios

Un directory_entry objeto almacena un pathobjeto . Como optimización, también puede almacenar en caché los atributos y el estado del archivo al que hace referencia la ruta de acceso. Los datos almacenados en caché se rellenan cuando un iterador de directorio crea la entrada o cuando se llama a refresh. Los observadores como file_size, last_write_time, statusy los distintos is_* predicados devuelven los datos almacenados en caché cuando están disponibles; de lo contrario, consultan el sistema de archivos.

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

Constructores

Constructor Descripción
directory_entry Construye un objeto directory_entry.

Funciones miembro

Función de miembro Descripción
assign Reemplaza la ruta de acceso almacenada y actualiza los atributos almacenados en caché.
exists Comprueba si la entrada hace referencia a un archivo existente.
file_size Obtiene el tamaño, en bytes, del archivo al que se hace referencia.
hard_link_count Obtiene el número de vínculos duros al archivo al que se hace referencia.
is_block_file Comprueba si el archivo al que se hace referencia es un archivo especial de bloque.
is_character_file Comprueba si el archivo al que se hace referencia es un archivo especial de caracteres.
is_directory Comprueba si el archivo al que se hace referencia es un directorio.
is_fifo Comprueba si el archivo al que se hace referencia es una canalización con nombre (FIFO).
is_other Comprueba si el archivo al que se hace referencia es otro archivo.
is_regular_file Comprueba si el archivo al que se hace referencia es un archivo normal.
is_socket Comprueba si el archivo al que se hace referencia es un socket.
is_symlink Comprueba si el archivo al que se hace referencia es un vínculo simbólico.
last_write_time Obtiene la hora de la última modificación de datos del archivo al que se hace referencia.
path Devuelve la ruta de acceso almacenada.
refresh Actualiza los atributos de archivo almacenados en caché.
replace_filename Reemplaza el nombre de archivo de la ruta de acceso almacenada y actualiza los atributos almacenados en caché.
status Obtiene el estado del archivo al que se hace referencia, siguiendo los vínculos simbólicos.
symlink_status Obtiene el estado del archivo al que se hace referencia, sin seguir vínculos simbólicos.

Operadores

Operador Descripción
operator= Asigna a .directory_entry
operator const path& Devuelve la ruta de acceso almacenada.
operator== Comprueba si dos directory_entry objetos son iguales.
operator<=> Realiza una comparación triple de dos directory_entry objetos. (C++20)
operator!= Comprueba si dos directory_entry objetos no son iguales. Un miembro explícito en C++17; se admite a través de comparaciones reescritas en C++20 y versiones posteriores.
operator< Comprueba si se directory_entry ordena antes de otro directory_entry. Un miembro explícito en C++17; se admite a través de comparaciones reescritas en C++20 y versiones posteriores.
operator<= Comprueba si el directory_entry orden es anterior o igual a otro directory_entry. Un miembro explícito en C++17; se admite a través de comparaciones reescritas en C++20 y versiones posteriores.
operator> Comprueba si se directory_entry ordena después de otro directory_entry. Un miembro explícito en C++17; se admite a través de comparaciones reescritas en C++20 y versiones posteriores.
operator>= Comprueba si el directory_entry orden es posterior o igual a otro directory_entry. Un miembro explícito en C++17; se admite a través de comparaciones reescritas en C++20 y versiones posteriores.

Requisitos

Encabezado: <filesystem>

Espacio de nombres:std::filesystem

directory_entry

Construye un objeto directory_entry.

directory_entry() noexcept = default;
directory_entry(const directory_entry&) = default;
directory_entry(directory_entry&&) noexcept = default;

explicit directory_entry(const std::filesystem::path& p);
directory_entry(const std::filesystem::path& p, std::error_code& ec);

~directory_entry();

Parámetros

p
Ruta de acceso al archivo al que hace referencia la entrada.

ec
Código de error de salida para la operación.

Comentarios

Los constructores predeterminados, copiar y mover se comportan según lo previsto. Constructores que toman una pathp de almacén y, a continuación, llaman refresh a para rellenar los atributos almacenados en caché. La sobrecarga que toma un error_code informe de errores en ec en lugar de iniciar y borra la ruta de acceso almacenada si se produce un error en la actualización.

operator=

Asigna a .directory_entry

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

Parámetros

right
que directory_entry se va a copiar o mover a este directory_entryobjeto .

Comentarios

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

asignar

Reemplaza la ruta de acceso almacenada y actualiza los atributos almacenados en caché.

void assign(const std::filesystem::path& p);
void assign(const std::filesystem::path& p, std::error_code& ec);

Parámetros

p
Nueva ruta de acceso que se va a almacenar.

ec
Código de error de salida para la operación.

Comentarios

Reemplaza la ruta de acceso almacenada por p y, a continuación, llama refresh a para actualizar los atributos almacenados en caché. La sobrecarga que toma un error_code informe de errores en ec en lugar de iniciar.

replace_filename

Reemplaza el nombre de archivo de la ruta de acceso almacenada y actualiza los atributos almacenados en caché.

void replace_filename(const std::filesystem::path& p);
void replace_filename(const std::filesystem::path& p, std::error_code& ec);

Parámetros

p
Nombre de archivo de reemplazo.

ec
Código de error de salida para la operación.

Comentarios

Reemplaza el componente de nombre de archivo de la ruta de acceso almacenada por p, como si fuera , path().replace_filename(p)llama a refresh. La sobrecarga que toma un error_code informe de errores en ec en lugar de iniciar.

actualizar

Actualiza los atributos de archivo almacenados en caché.

void refresh();
void refresh(std::error_code& ec) noexcept;

Parámetros

ec
Código de error de salida para la operación.

Comentarios

Lee los atributos del archivo al que hace referencia la ruta de acceso almacenada y los almacena en caché en .directory_entry Llame refresh a para actualizar los datos almacenados en caché después de que cambie el archivo al que se hace referencia. La sobrecarga que toma un error_code informe de errores en ec en lugar de iniciar.

path

Devuelve la ruta de acceso almacenada.

const std::filesystem::path& path() const noexcept;

operator const path&

Devuelve la ruta de acceso almacenada.

operator const std::filesystem::path&() const noexcept;

existe

Comprueba si la entrada hace referencia a un archivo existente.

bool exists() const;
bool exists(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

true si la ruta de acceso almacenada hace referencia a un archivo existente; de lo contrario, false. Equivalente a llamar a filesystem::exists(status()).

is_block_file

Comprueba si el archivo al que se hace referencia es un archivo especial de bloque.

bool is_block_file() const;
bool is_block_file(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

true si el archivo al que se hace referencia es un archivo especial de bloque; de lo contrario, false. Esta función siempre devuelve false en Windows.

is_character_file

Comprueba si el archivo al que se hace referencia es un archivo especial de caracteres.

bool is_character_file() const;
bool is_character_file(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

true si el archivo al que se hace referencia es un archivo especial de caracteres; de lo contrario, false. Esta función siempre devuelve false en Windows.

is_directory

Comprueba si el archivo al que se hace referencia es un directorio.

bool is_directory() const;
bool is_directory(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

true si el archivo al que se hace referencia es un directorio; de lo contrario, false. Equivalente a llamar a filesystem::is_directory(status()).

is_fifo

Comprueba si el archivo al que se hace referencia es una canalización con nombre (FIFO).

bool is_fifo() const;
bool is_fifo(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

true si el archivo al que se hace referencia es un FIFO; de lo contrario, false. Esta función siempre devuelve false en Windows.

is_other

Comprueba si el archivo al que se hace referencia es otro archivo.

bool is_other() const;
bool is_other(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

true si el archivo al que se hace referencia existe pero no es un archivo, directorio o vínculo simbólico normal; de lo contrario, false. Equivalente a llamar a filesystem::is_other(status()).

is_regular_file

Comprueba si el archivo al que se hace referencia es un archivo normal.

bool is_regular_file() const;
bool is_regular_file(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

true si el archivo al que se hace referencia es un archivo normal; de lo contrario, false. Equivalente a llamar a filesystem::is_regular_file(status()).

is_socket

Comprueba si el archivo al que se hace referencia es un socket.

bool is_socket() const;
bool is_socket(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

true si el archivo al que se hace referencia es un socket; de lo contrario, false. Esta función siempre devuelve false en Windows.

Comprueba si el archivo al que se hace referencia es un vínculo simbólico.

bool is_symlink() const;
bool is_symlink(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

true si el archivo al que se hace referencia es un vínculo simbólico; de lo contrario, false. Equivalente a llamar a filesystem::is_symlink(symlink_status()).

tamaño_de_archivo

Obtiene el tamaño, en bytes, del archivo al que se hace referencia.

uintmax_t file_size() const;
uintmax_t file_size(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

Tamaño, en bytes, del archivo al que se hace referencia, como si fuera .filesystem::file_size(path()) Usa datos almacenados en caché cuando esté disponible.

Obtiene el número de vínculos duros al archivo al que se hace referencia.

uintmax_t hard_link_count() const;
uintmax_t hard_link_count(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

Número de vínculos duros al archivo al que se hace referencia, como si fuera .filesystem::hard_link_count(path()) Usa datos almacenados en caché cuando esté disponible.

last_write_time

Obtiene la hora de la última modificación de datos del archivo al que se hace referencia.

file_time_type last_write_time() const;
file_time_type last_write_time(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

Hora de la última modificación de datos del archivo al que se hace referencia, como si fuera .filesystem::last_write_time(path()) Usa datos almacenados en caché cuando esté disponible.

status

Obtiene el estado del archivo al que se hace referencia, siguiendo los vínculos simbólicos.

file_status status() const;
file_status status(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

Estado del archivo al que se hace referencia, como si fuera filesystem::status(path()). Usa datos almacenados en caché cuando esté disponible.

Obtiene el estado del archivo al que se hace referencia, sin seguir vínculos simbólicos.

file_status symlink_status() const;
file_status symlink_status(std::error_code& ec) const noexcept;

Parámetros

ec
Código de error de salida para la operación.

Valor de retorno

Estado de vínculo simbólico del archivo al que se hace referencia, como si fuera filesystem::symlink_status(path()). Usa datos almacenados en caché cuando esté disponible.

operator==

Comprueba si dos directory_entry objetos son iguales.

bool operator==(const directory_entry& right) const noexcept;

Parámetros

right
con directory_entry el que se va a comparar.

Valor de retorno

Devuelve path() == right.path().

operator<=>

Realiza una comparación triple de dos directory_entry objetos.

std::strong_ordering operator<=>(const directory_entry& right) const noexcept; // C++20

Parámetros

right
con directory_entry el que se va a comparar.

Valor de retorno

Devuelve path() <=> right.path().

Comentarios

Disponible en C++20 y versiones posteriores. El compilador vuelve a escribir comparaciones que usan operator<, operator<=, operator>o operator>= para usar este operador. Vuelve a escribir comparaciones que usan operator!= para usar operator==.

operator!=

Comprueba si dos directory_entry objetos no son iguales.

bool operator!=(const directory_entry& right) const noexcept; // C++17

Parámetros

right
con directory_entry el que se va a comparar.

Valor de retorno

Devuelve !(*this == right).

Comentarios

En C++17, este operador es una función miembro declarada explícitamente. En C++20 y versiones posteriores, se vuelve a escribir una expresión que usa operator!= para usar operator==.

operator<

Comprueba si se directory_entry ordena antes de otro directory_entry.

bool operator<(const directory_entry& right) const noexcept; // C++17

Parámetros

right
con directory_entry el que se va a comparar.

Valor de retorno

Devuelve path() < right.path().

Comentarios

En C++17, este operador es una función miembro declarada explícitamente. En C++20 y versiones posteriores, se vuelve a escribir una expresión que usa operator< para usar operator<=>.

operator<=

Comprueba si el directory_entry orden es anterior o igual a otro directory_entry.

bool operator<=(const directory_entry& right) const noexcept; // C++17

Parámetros

right
con directory_entry el que se va a comparar.

Valor de retorno

Devuelve !(right < *this).

Comentarios

En C++17, este operador es una función miembro declarada explícitamente. En C++20 y versiones posteriores, se vuelve a escribir una expresión que usa operator<= para usar operator<=>.

operator>

Comprueba si se directory_entry ordena después de otro directory_entry.

bool operator>(const directory_entry& right) const noexcept; // C++17

Parámetros

right
con directory_entry el que se va a comparar.

Valor de retorno

Devuelve right < *this.

Comentarios

En C++17, este operador es una función miembro declarada explícitamente. En C++20 y versiones posteriores, se vuelve a escribir una expresión que usa operator> para usar operator<=>.

operator>=

Comprueba si el directory_entry orden es posterior o igual a otro directory_entry.

bool operator>=(const directory_entry& right) const noexcept; // C++17

Parámetros

right
con directory_entry el que se va a comparar.

Valor de retorno

Devuelve !(*this < right).

Comentarios

En C++17, este operador es una función miembro declarada explícitamente. En C++20 y versiones posteriores, se vuelve a escribir una expresión que usa operator>= para usar operator<=>.

Consulte también

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