directory_entry classe

Descreve um objeto que é devolvido ao desreferenciar um directory_iterator ou um recursive_directory_iterator. Um wraps a path and, como otimização, pode armazenar directory_entry em cache atributos de ficheiros que são obtidos durante a iteração de um diretório.

Sintaxe

class directory_entry;

Observações

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

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

Constructors

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 em cache.
exists Verifica se a entrada se refere a um ficheiro existente.
file_size Obtém o tamanho, em bytes, do ficheiro referenciado.
hard_link_count Obtém o número de ligações rígidas para o ficheiro referenciado.
is_block_file Verifica se o ficheiro referenciado é um ficheiro block special.
is_character_file Verifica se o ficheiro referenciado é um ficheiro especial de carácter.
is_directory Verifica se o ficheiro referenciado é um diretório.
is_fifo Verifica se o ficheiro referenciado é um pipe nomeado (FIFO).
is_other Verifica se o ficheiro referenciado é outro ficheiro.
is_regular_file Verifica se o ficheiro referenciado é um ficheiro normal.
is_socket Verifica se o ficheiro referenciado é um socket.
is_symlink Verifica se o ficheiro referenciado é uma ligação simbólica.
last_write_time Obtém a hora da última modificação de dados do ficheiro referenciado.
path Devolve o caminho armazenado.
refresh Atualiza os atributos do ficheiro em cache.
replace_filename Substitui o nome do ficheiro do caminho armazenado e atualiza os atributos em cache.
status Obtém o estado do ficheiro referenciado, seguindo links simbólicos.
symlink_status Obtém o estado do ficheiro referenciado, sem seguir links simbólicos.

Operators

Operator Descrição
operator= Atribui ao directory_entry.
operator const path& Devolve o caminho armazenado.
operator== Verifica se dois directory_entry objetos são iguais.
operator<=> Realiza uma comparação a três de dois directory_entry objetos. (C++20)
operator!= Verifica se dois directory_entry objetos são desiguais. Um membro explícito em C++17; suportado por comparações reescritas em C++20 e posteriores.
operator< Verifica se os directory_entry tipos antes de outro directory_entry. Um membro explícito em C++17; suportado por comparações reescritas em C++20 e posteriores.
operator<= Verifica se os directory_entry tipos são anteriores ou iguais a outro directory_entry. Um membro explícito em C++17; suportado por comparações reescritas em C++20 e posteriores.
operator> Verifica se os directory_entry grupos seguem os outros directory_entry. Um membro explícito em C++17; suportado por comparações reescritas em C++20 e posteriores.
operator>= Verifica se os directory_entry ordens são posteriores ou iguais a outro directory_entry. Um membro explícito em C++17; suportado por comparações reescritas em C++20 e posteriores.

Requisitos

Cabeçalho:<filesystem>

Espaço de nomes: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();

Parameters

p
O caminho para o ficheiro a que a entrada se refere.

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

Observações

Os construtores padrão, copiar e mover comportam-se como esperado. Os construtores que fazem uma path loja p e depois chamam refresh para preencher os atributos em cache. O overload que recebe error_code e reporta erros no ec em vez de lançar, e limpa o caminho armazenado se a atualização falhar.

operador=

Atribui ao directory_entry.

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

Parameters

direito
O directory_entry para copiar ou mover para este directory_entry.

Observações

Os operadores de atribuição por defeito comportam-se como esperado.

atribuir

Substitui o caminho armazenado e atualiza os atributos em cache.

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

Parameters

p
O novo caminho para a compra.

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

Observações

Substitui o caminho armazenado por p, depois chama refresh para atualizar os atributos em cache. A sobrecarga que tira e error_code reporta erros em EC em vez de ser lançada.

replace_filename

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

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

Parameters

p
O nome do ficheiro de substituição.

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

Observações

Substitui o componente do nome do ficheiro do caminho armazenado por p, como se fosse por path().replace_filename(p), e depois chama refresh. A sobrecarga que tira e error_code reporta erros em EC em vez de ser lançada.

actualizar

Atualiza os atributos do ficheiro em cache.

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

Parameters

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

Observações

Lê os atributos do ficheiro a que o caminho armazenado se refere e armazena-os em cache no directory_entryarquivo . Chame refresh para atualizar os dados em cache após as alterações no ficheiro referenciado. A sobrecarga que tira e error_code reporta erros em EC em vez de ser lançada.

caminho

Devolve o caminho armazenado.

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

operador const path&

Devolve o caminho armazenado.

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

existe

Verifica se a entrada se refere a um ficheiro existente.

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

Parameters

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

Valor de retorno

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

is_block_file

Verifica se o ficheiro referenciado é um ficheiro block special.

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

Parameters

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

Valor de retorno

true se o ficheiro referenciado for um ficheiro especial de blocos; caso contrário, false. Esta função regressa false sempre no Windows.

is_character_file

Verifica se o ficheiro referenciado é um ficheiro especial de carácter.

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

Parameters

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

Valor de retorno

true se o ficheiro referenciado for um ficheiro especial de caracteres; caso contrário, false. Esta função regressa false sempre no Windows.

is_directory

Verifica se o ficheiro referenciado é um diretório.

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

Parameters

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

Valor de retorno

true se o ficheiro referenciado for um diretório; caso contrário, false. Equivalente a chamar filesystem::is_directory(status()).

is_fifo

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

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

Parameters

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

Valor de retorno

true se o ficheiro referenciado for um FIFO; caso contrário, false. Esta função regressa false sempre no Windows.

is_other

Verifica se o ficheiro referenciado é outro ficheiro.

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

Parameters

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

Valor de retorno

true se o ficheiro referenciado existir mas não for um ficheiro normal, diretório ou ligação simbólica; caso contrário, false. Equivalente a chamar filesystem::is_other(status()).

is_regular_file

Verifica se o ficheiro referenciado é um ficheiro normal.

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

Parameters

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

Valor de retorno

true se o ficheiro referenciado for um ficheiro normal; caso contrário, false. Equivalente a chamar filesystem::is_regular_file(status()).

is_socket

Verifica se o ficheiro referenciado é um socket.

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

Parameters

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

Valor de retorno

true se o ficheiro referenciado for um socket; caso contrário, false. Esta função regressa false sempre no Windows.

Verifica se o ficheiro referenciado é uma ligação simbólica.

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

Parameters

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

Valor de retorno

true se o ficheiro referenciado for uma ligação simbólica; caso contrário, false. Equivalente a chamar filesystem::is_symlink(symlink_status()).

tamanho do ficheiro

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

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

Parameters

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

Valor de retorno

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

Obtém o número de ligações rígidas para o ficheiro referenciado.

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

Parameters

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

Valor de retorno

O número de ligações rígidas para o ficheiro referenciado, como se por filesystem::hard_link_count(path()). Usa dados em cache quando estão disponíveis.

last_write_time

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

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

Parameters

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

Valor de retorno

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

estado

Obtém o estado do ficheiro referenciado, seguindo links simbólicos.

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

Parameters

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

Valor de retorno

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

Obtém o estado do ficheiro referenciado, sem seguir links simbólicos.

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

Parameters

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

Valor de retorno

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

operador==

Verifica se dois directory_entry objetos são iguais.

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

Parameters

direito
A directory_entry comparar.

Valor de retorno

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

operator<=>

Realiza uma comparação a três de dois directory_entry objetos.

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

Parameters

direito
A directory_entry comparar.

Valor de retorno

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

Observações

Disponível em C++20 e posteriores. O compilador reescreve comparações que usam operator<, operator<=, operator>, ou operator>= para usar este operador. Reescreve comparações que antes operator!= usavam operator==.

operador!=

Verifica se dois directory_entry objetos são desiguais.

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

Parameters

direito
A directory_entry comparar.

Valor de retorno

Retorna !(*this == right).

Observações

Em C++17, este operador é uma função membro explicitamente declarada. Em C++20 e posteriores, uma expressão que usa operator!= é reescrita para usar operator==.

operator<

Verifica se os directory_entry tipos antes de outro directory_entry.

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

Parameters

direito
A directory_entry comparar.

Valor de retorno

Retorna path() < right.path().

Observações

Em C++17, este operador é uma função membro explicitamente declarada. Em C++20 e posteriores, uma expressão que usa operator< é reescrita para usar operator<=>.

operator<=

Verifica se os directory_entry tipos são anteriores ou iguais a outro directory_entry.

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

Parameters

direito
A directory_entry comparar.

Valor de retorno

Retorna !(right < *this).

Observações

Em C++17, este operador é uma função membro explicitamente declarada. Em C++20 e posteriores, uma expressão que usa operator<= é reescrita para usar operator<=>.

operator>

Verifica se os directory_entry grupos seguem os outros directory_entry.

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

Parameters

direito
A directory_entry comparar.

Valor de retorno

Retorna right < *this.

Observações

Em C++17, este operador é uma função membro explicitamente declarada. Em C++20 e posteriores, uma expressão que usa operator> é reescrita para usar operator<=>.

operator>=

Verifica se os directory_entry ordens são posteriores ou iguais a outro directory_entry.

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

Parameters

direito
A directory_entry comparar.

Valor de retorno

Retorna !(*this < right).

Observações

Em C++17, este operador é uma função membro explicitamente declarada. Em C++20 e posteriores, uma expressão que usa operator>= é reescrita para usar operator<=>.

Ver também

de referência de arquivos de cabeçalho
<filesystem>
Navegação do Sistema de Ficheiros (C++)