Compartilhar via


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++)