Classe directory_entry

Descreve um objeto retornado desreferenciando um directory_iterator ou um recursive_directory_iterator. Um directory_entry encapsula um path e, como uma otimização, pode armazenar em cache atributos de arquivo obtidos durante a iteração de um diretório.

Sintaxe

class directory_entry;

Comentários

Um directory_entry objeto armazena um path. Como otimização, ele também pode armazenar em cache os atributos e o status do arquivo ao qual o caminho se refere. Os dados armazenados em cache são preenchidos quando a entrada é criada por um iterador de diretório ou quando você chama refresh. Observadores como file_size, last_write_timee statusos vários is_* predicados retornam os dados armazenados em cache quando estão disponíveis; caso contrário, eles consultam o sistema de arquivos.

Para obter mais informações e exemplos de código, consulte Navegação do Sistema de Arquivos (C++).

Construtores

Construtor Descrição
directory_entry Constrói um directory_entry.

Funções de membro

Função de membro Descrição
assign Substitui o caminho armazenado e atualiza os atributos armazenados em cache.
exists Verifica se a entrada se refere a um arquivo existente.
file_size Obtém o tamanho, em bytes, do arquivo referenciado.
hard_link_count Obtém o número de links rígidos para o arquivo referenciado.
is_block_file Verifica se o arquivo referenciado é um arquivo especial de bloco.
is_character_file Verifica se o arquivo referenciado é um arquivo especial de caractere.
is_directory Verifica se o arquivo referenciado é um diretório.
is_fifo Verifica se o arquivo referenciado é um FIFO (pipe nomeado).
is_other Verifica se o arquivo referenciado é outro arquivo.
is_regular_file Verifica se o arquivo referenciado é um arquivo regular.
is_socket Verifica se o arquivo referenciado é um soquete.
is_symlink Verifica se o arquivo referenciado é um link simbólico.
last_write_time Obtém a hora da última modificação de dados do arquivo referenciado.
path Retorna o caminho armazenado.
refresh Atualiza os atributos de arquivo armazenados em cache.
replace_filename Substitui o nome do arquivo do caminho armazenado e atualiza os atributos armazenados em cache.
status Obtém o status do arquivo referenciado, seguindo links simbólicos.
symlink_status Obtém o status do arquivo referenciado, sem seguir links simbólicos.

Operadores

Operador Descrição
operator= Atribui ao directory_entry.
operator const path& Retorna o caminho armazenado.
operator== Verifica se dois directory_entry objetos são iguais.
operator<=> Executa uma comparação de três vias de dois directory_entry objetos. (C++20)
operator!= Verifica se dois directory_entry objetos são diferentes. Um membro explícito no C++17; com suporte por meio de comparações reescritas no C++20 e posterior.
operator< Verifica se a classificação directory_entry antes de outra directory_entry. Um membro explícito no C++17; com suporte por meio de comparações reescritas no C++20 e posterior.
operator<= Verifica se as directory_entry classificações anteriores ou iguais a outra directory_entry. Um membro explícito no C++17; com suporte por meio de comparações reescritas no C++20 e posterior.
operator> Verifica se a classificação directory_entry após outra directory_entry. Um membro explícito no C++17; com suporte por meio de comparações reescritas no C++20 e posterior.
operator>= Verifica se a classificação directory_entry é posterior ou igual a outra directory_entry. Um membro explícito no C++17; com suporte por meio de comparações reescritas no C++20 e posterior.

Requisitos

Cabeçalho:<filesystem>

Namespace:std::filesystem

directory_entry

Constrói um 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
O caminho para o arquivo ao qual a entrada se refere.

ec
O código de erro de saída da operação.

Comentários

Os construtores padrão, copiar e mover se comportam conforme o esperado. Os construtores que levam um path repositório p e, em seguida, chamam refresh para preencher os atributos armazenados em cache. A sobrecarga que recebe erros de relatórios error_code em ec em vez de gerar e limpa o caminho armazenado se a atualização falhar.

operator=

Atribui ao directory_entry.

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

Parâmetros

direita
O directory_entry para copiar ou mover para isso directory_entry.

Comentários

Os operadores de atribuição padrão se comportam conforme o esperado.

atribuir

Substitui o caminho armazenado e atualiza os atributos armazenados em cache.

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

Parâmetros

p
O novo caminho a ser armazenado.

ec
O código de erro de saída da operação.

Comentários

Substitui o caminho armazenado por p e, em seguida, chama refresh para atualizar os atributos armazenados em cache. A sobrecarga que usa erros de error_code relatórios em ec em vez de gerar.

replace_filename

Substitui o nome do arquivo do caminho armazenado e atualiza os atributos armazenados em cache.

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

Parâmetros

p
O nome do arquivo de substituição.

ec
O código de erro de saída da operação.

Comentários

Substitui o componente filename do caminho armazenado por p, como se estivesse por path().replace_filename(p), em seguida, chama refresh. A sobrecarga que usa erros de error_code relatórios em ec em vez de gerar.

atualizar

Atualiza os atributos de arquivo armazenados em cache.

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

Parâmetros

ec
O código de erro de saída da operação.

Comentários

Lê os atributos do arquivo ao qual o caminho armazenado se refere e os armazena em cache no directory_entry. Chame refresh para atualizar os dados armazenados em cache após as alterações do arquivo referenciado. A sobrecarga que usa erros de error_code relatórios em ec em vez de gerar.

caminho

Retorna o caminho armazenado.

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

caminho do operador const&

Retorna o caminho armazenado.

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

existe

Verifica se a entrada se refere a um arquivo existente.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

true se o caminho armazenado se referir a um arquivo existente; caso contrário, false. Equivalente à chamada filesystem::exists(status()).

is_block_file

Verifica se o arquivo referenciado é um arquivo especial de bloco.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

true se o arquivo referenciado for um arquivo especial de bloco; caso contrário, false. Essa função sempre retorna false em Windows.

is_character_file

Verifica se o arquivo referenciado é um arquivo especial de caractere.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

true se o arquivo referenciado for um arquivo especial de caractere; caso contrário, false. Essa função sempre retorna false em Windows.

is_directory

Verifica se o arquivo referenciado é um diretório.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

true se o arquivo referenciado for um diretório; caso contrário, false. Equivalente à chamada filesystem::is_directory(status()).

is_fifo

Verifica se o arquivo referenciado é um FIFO (pipe nomeado).

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

true se o arquivo referenciado for um FIFO; caso contrário, false. Essa função sempre retorna false em Windows.

is_other

Verifica se o arquivo referenciado é outro arquivo.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

true se o arquivo referenciado existir, mas não for um arquivo, diretório ou link simbólico regular; caso contrário, false. Equivalente à chamada filesystem::is_other(status()).

is_regular_file

Verifica se o arquivo referenciado é um arquivo regular.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

true se o arquivo referenciado for um arquivo regular; caso contrário, false. Equivalente à chamada filesystem::is_regular_file(status()).

is_socket

Verifica se o arquivo referenciado é um soquete.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

true se o arquivo referenciado for um soquete; caso contrário, false. Essa função sempre retorna false em Windows.

Verifica se o arquivo referenciado é um link simbólico.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

true se o arquivo referenciado for um link simbólico; caso contrário, false. Equivalente à chamada filesystem::is_symlink(symlink_status()).

tamanho_do_arquivo

Obtém o tamanho, em bytes, do arquivo referenciado.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

O tamanho, em bytes, do arquivo referenciado, como se fosse por filesystem::file_size(path()). Usa dados armazenados em cache quando estão disponíveis.

Obtém o número de links rígidos para o arquivo referenciado.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

O número de links rígidos para o arquivo referenciado, como se fosse por filesystem::hard_link_count(path()). Usa dados armazenados em cache quando estão disponíveis.

last_write_time

Obtém a hora da última modificação de dados do arquivo referenciado.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

A hora da última modificação de dados do arquivo referenciado, como se fosse por filesystem::last_write_time(path()). Usa dados armazenados em cache quando estão disponíveis.

status

Obtém o status do arquivo referenciado, seguindo links simbólicos.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

O status do arquivo referenciado, como se fosse por filesystem::status(path()). Usa dados armazenados em cache quando estão disponíveis.

Obtém o status do arquivo referenciado, sem seguir links simbólicos.

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

Parâmetros

ec
O código de erro de saída da operação.

Valor de devolução

O status do symlink do arquivo referenciado, como se estivesse por filesystem::symlink_status(path()). Usa dados armazenados em cache quando estão disponíveis.

operator==

Verifica se dois directory_entry objetos são iguais.

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

Parâmetros

direita
O directory_entry para comparar.

Valor de devolução

Retorna path() == right.path().

operator<=>

Executa uma comparação de três vias de dois directory_entry objetos.

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

Parâmetros

direita
O directory_entry para comparar.

Valor de devolução

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

Comentários

Disponível em C++20 e posterior. O compilador reescreve comparações que usam operator<, operator<=operator>ou operator>= para usar esse operador. Ele reescreve comparações que usam operator!= para usar operator==.

operator!=

Verifica se dois directory_entry objetos são diferentes.

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

Parâmetros

direita
O directory_entry para comparar.

Valor de devolução

Retorna !(*this == right).

Comentários

No C++17, esse operador é uma função de membro declarada explicitamente. No C++20 e posterior, uma expressão que usa operator!= é reescrita para uso operator==.

operator<

Verifica se a classificação directory_entry antes de outra directory_entry.

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

Parâmetros

direita
O directory_entry para comparar.

Valor de devolução

Retorna path() < right.path().

Comentários

No C++17, esse operador é uma função de membro declarada explicitamente. No C++20 e posterior, uma expressão que usa operator< é reescrita para uso operator<=>.

operator<=

Verifica se as directory_entry classificações anteriores ou iguais a outra directory_entry.

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

Parâmetros

direita
O directory_entry para comparar.

Valor de devolução

Retorna !(right < *this).

Comentários

No C++17, esse operador é uma função de membro declarada explicitamente. No C++20 e posterior, uma expressão que usa operator<= é reescrita para uso operator<=>.

operator>

Verifica se a classificação directory_entry após outra directory_entry.

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

Parâmetros

direita
O directory_entry para comparar.

Valor de devolução

Retorna right < *this.

Comentários

No C++17, esse operador é uma função de membro declarada explicitamente. No C++20 e posterior, uma expressão que usa operator> é reescrita para uso operator<=>.

operator>=

Verifica se a classificação directory_entry é posterior ou igual a outra directory_entry.

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

Parâmetros

direita
O directory_entry para comparar.

Valor de devolução

Retorna !(*this < right).

Comentários

No C++17, esse operador é uma função de membro declarada explicitamente. No C++20 e posterior, uma expressão que usa operator>= é reescrita para uso operator<=>.

Confira também

Referência de Arquivos de Cabeçalho
<filesystem>
Navegação do sistema de arquivos (C++)