Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
is_symlink
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.
hard_link_count
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.
symlink_status
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++)