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.
clase
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.
is_symlink
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.
hard_link_count
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.
symlink_status
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++)