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 *thisright 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. Os construtores que levam um pval argumento o armazenam mydir, em seguida, 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. As sobrecargas que assumem um options controle de argumento como o diretório é enumerado. As sobrecargas que levam ec erros de relatório de argumento em ec vez de gerar uma exceção. Os construtores de cópia e movimentação se comportam conforme o esperado.

directory_iterator() noexcept;
explicit directory_iterator(const path& pval);
directory_iterator(const path& pval, directory_options options);
directory_iterator(const path& pval, error_code& ec) noexcept;
directory_iterator(const path& pval, directory_options options, 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.

options
O directory_options valor que controla como o diretório é enumerado. O padrão é directory_options::none.

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

Parâmetros

ec
O código de erro do status.

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
Argumento fictício. É uma convenção C++ usada apenas para distinguir o operador de incremento de postfixo do operador de incremento de prefixo. O padrão C++ requer o formulário de postfixo para usar um parâmetro de int fictício.

Confira também

<filesystem>
Referência de Arquivos de Cabeçalho
Navegação no sistema de arquivos (C++)