directory_iterator classe

Descreve um iterador de entrada que sequencia os nomes dos ficheiros numa diretoria. Para um iterador X, a expressão *X avalia para um objeto de classe directory_entry que envolve o nome do ficheiro e tudo o que se sabe sobre o seu estado.

A classe armazena um objeto do tipo path, chamado mydir aqui para fins de exposição, que representa o nome do diretório a sequenciar, e um objeto do tipo directory_entry chamado myentry aqui, que representa o nome atual do ficheiro na sequência de diretórios. Um objeto construído por defeito de tipo directory_entry tem um nome de caminho vazio mydir 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());

visit chamadas com os argumentos path("abc/def") e path("abc/ghi").

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

Sintaxe

class directory_iterator;

Constructors

Construtor Descrição
directory_iterator Constrói um iterador de entrada que sequencia os nomes dos ficheiros num diretório.

Funções de membro

Função de membro Descrição
increment Tenta avançar para o nome de ficheiro seguinte na diretoria.

Operators

Operator Descrição
operator!= Retorna !(*this == right).
operator= Os operadores de atribuição de membros por defeito comportam-se como esperado.
operator== Retorna true apenas se ambos *this e right forem iteradores de fim de sequência ou ambos não forem iteradores de fim de sequência.
operator* Retorna myentry.
operator-> Retorna &**this.
operator++ Chama increment(), depois retorna *this, ou faz uma cópia do objeto, chama increment(), e depois retorna a cópia.

Requisitos

Cabeçalho:<filesystem>

Espaço de nomes:std::filesystem

directory_iterator::directory_iterator

O primeiro construtor produz um iterador de fim de sequência. Os construtores que pegam num pval argumento armazenam-no em mydir, depois tentam abrir e ler mydir como um diretório. Se for bem-sucedido, armazenam o primeiro nome de ficheiro no diretório em myentry; caso contrário, produzem um iterador de fim de sequência. As sobrecargas que ocupam um options argumento controlam como o diretório é enumerado. As sobrecargas que levam um ec argumento reportam erros em ec vez de lançar uma exceção. Os construtores copy e move comportam-se como 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;

Parameters

pval
O caminho do nome do ficheiro armazenado.

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

ec
O código de erro de status.

directory_iterator
O objeto guardado.

directory_iterator::increment

A função tenta avançar para o nome de ficheiro seguinte na diretoria. Se for bem-sucedido, armazena esse nome de ficheiro em myentry; caso contrário, produz um iterador de fim de sequência.

directory_iterator& increment(error_code& ec);

Parameters

ec
O código de erro de status.

directory_iterator::operator!=

O operador membro devolve !(*this == right).

bool operator!=(const directory_iterator& right) const;

Parameters

right
O directory_iterator ser comparado ao directory_iterator.

directory_iterator::operator=

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

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

Parameters

right
O directory_iterator ser copiado para o directory_iterator.

directory_iterator::operator==

O operador membro retorna true apenas se tanto *this como 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;

Parameters

right
A directory_iterator sendo comparada à directory_iterator.

directory_iterator::operator*

O operador membro devolve myentry.

const directory_entry& operator*() const;

directory_iterator::operator->

A função membro devolve &**this.

const directory_entry * operator->() const;

directory_iterator::operator++

A primeira função membro chama increment(), depois devolve *this. A segunda função membro faz uma cópia do objeto, chama increment(), e depois devolve a cópia.

directory_iterator& operator++();
directory_iterator operator++(int);

Parameters

int
Argumento falso. É uma convenção em C++ usada apenas para distinguir o operador de incremento pós-fixo do operador de incremento prefixo. O padrão C++ exige que o formulário postfix aceite um parâmetro int fictício.

Ver também

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