Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Classe
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.
is_symlink
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.
hard_link_count
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.
symlink_status
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++)