Classe directory_iterator
Descreve um iterador de entrada que percorre em sequência os nomes de arquivo em um diretório. Para um iterador X
, a expressão *X
é avaliada como um objeto da classe directory_entry
que encapsula o nome do arquivo e o que for conhecido sobre seu status.
A classe armazena um objeto de caminho de tipo path
, chamado mydir
aqui para fins de exposição, que representa o nome do diretório a ser sequenciado e um objeto do tipo directory_entry
chamado myentry
aqui, que representa o nome de arquivo atual na sequência do diretório. Um objeto construído padrão do tipo directory_entry
tem um nome de caminho mydir
vazio e representa o iterador de fim de sequência.
Por exemplo, dado o diretório abc
com entradas def
e ghi
, o código:
for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());
chamadas visit
com os argumentos path("abc/def")
e path("abc/ghi")
.
Para obter mais informações e exemplos de código, consulte Navegação do Sistema de Arquivos (C++).
Sintaxe
class directory_iterator;
Construtores
Construtor | Descrição |
---|---|
directory_iterator |
Constrói um iterador de entrada que percorre em sequência os nomes de arquivo em um diretório. |
Funções de membro
Função de membro | Descrição |
---|---|
increment |
Tenta avançar para o próximo nome de arquivo no diretório. |
Operadores
Operador | Descrição |
---|---|
operator!= |
Retorna !(*this == right) . |
operator= |
Os operadores de atribuição de membro usados como padrão se comportam como esperado. |
operator== |
Retorna true somente se ambos e *this right são iteradores de fim de sequência ou ambos não são iteradores de fim de sequência. |
operator* |
Retorna myentry . |
operator-> |
Retorna &**this . |
operator++ |
Chama increment() , retorna *this ou faz uma cópia do objeto, chama increment() e retorna a cópia. |
Requisitos
Cabeçalho: <filesystem>
Namespace: std::filesystem
directory_iterator::directory_iterator
O primeiro construtor produz um iterador de fim de sequência. O segundo e o terceiro construtores armazenam pval
em mydir
, depois tentam abrir e ler mydir
como um diretório. Se tiverem êxito, eles armazenarão o primeiro nome de arquivo no diretório em myentry
; caso contrário, produzirão um iterador de fim de sequência.
O construtor padrão se comporta conforme o esperado.
directory_iterator() noexcept;
explicit directory_iterator(const path& pval);
directory_iterator(const path& pval, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) noexcept = default;
Parâmetros
pval
O caminho do nome do arquivo armazenado.
ec
O código de erro do status.
directory_iterator
O objeto armazenado.
directory_iterator::increment
A função tenta avançar para o próximo nome de arquivo no diretório. Se for bem-sucedido, armazenará esse nome de arquivo em myentry
, caso contrário, produzirá um iterador de final de sequência.
directory_iterator& increment(error_code& ec) noexcept;
directory_iterator::operator!=
O operador de membro retorna !(*this == right)
.
bool operator!=(const directory_iterator& right) const;
Parâmetros
right
O directory_iterator
ser comparado ao directory_iterator
.
directory_iterator::operator=
Os operadores de atribuição de membro usados como padrão se comportam como esperado.
directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;
Parâmetros
right
O directory_iterator
que está sendo copiado no directory_iterator
.
directory_iterator::operator==
O operador membro retornará true
somente se ambos *this
e right
forem iteradores de fim de sequência ou ambos não forem iteradores de fim de sequência.
bool operator==(const directory_iterator& right) const;
Parâmetros
right
O directory_iterator sendo comparado com o directory_iterator
.
directory_iterator::operator*
O operador de membro retorna myentry
.
const directory_entry& operator*() const;
directory_iterator::operator->
A função membro retorna &**this
.
const directory_entry * operator->() const;
directory_iterator::operator++
A primeira função membro chama increment()
e, em seguida, retorna *this
. A segunda função membro copia o objeto, chama increment()
e, em seguida, retorna a cópia.
directory_iterator& operator++();
directory_iterator& operator++(int);
Parâmetros
int
O número de incrementos.
Confira também
<filesystem>
Referência de Arquivos de Cabeçalho
Navegação no sistema de arquivos (C++)