<experimental/filesystem> directory_iterator classe

Important

Esta página descreve a directory_iterator classe da implementação pré-teste <experimental/filesystem> da Especificação Técnica do Sistema de Arquivos ISO C++ (N4100). Essa API não é a mesma da classe C++17 directory_iterator em <filesystem>. Ele usa assinaturas diferentes, incluindo um conjunto mais estreito de construtores que não directory_options tem sobrecarga. A implementação experimental foi removida a partir do conjunto de ferramentas do Microsoft Visual C++ (MSVC) 14.51. Em vez disso, o novo código deve usar a classe C++17 directory_iterator .

Descreve um iterador de entrada que é sequenciado por meio dos nomes de arquivo em um diretório. Para um iterador X, a expressão *X é avaliada como um objeto de classe directory_entry que encapsula o nome do arquivo e qualquer coisa conhecida sobre seu status.

A classe armazena um objeto 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 do arquivo atual na sequência de diretórios. Um objeto de tipo directory_entry construído padrão tem um nome de caminho vazio mydir e representa o iterador de fim de sequência.

Por exemplo, considerando o diretório abc com entradas def e ghio 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").

Sintaxe

class directory_iterator;

Constructors

Construtor Description
directory_iterator Constrói um iterador de entrada que é sequenciado por meio dos nomes de arquivo em um diretório.

Funções de membro

Função de membro Description
increment Tenta avançar para o próximo nome de arquivo no diretório.

Operadores

Operador Description
operator!= Retorna !(*this == right).
operator= Os operadores de atribuição de membro padrão se comportam conforme o esperado.
operator== Retorna true somente se ambos *this e 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 *thisou faz uma cópia do objeto, chama increment()e retorna a cópia.

Requirements

Cabeçalho:<experimental/filesystem>

Namespace:std::experimental::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 tiver êxito, eles armazenarão o primeiro nome de arquivo no diretório; myentrycaso contrário, produzem um iterador de fim de sequência. A sobrecarga que usa um ec argumento relata erros 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, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) = default;

Parâmetros

pval
O caminho do nome do arquivo armazenado.

ec
O código de erro de 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 tiver êxito, ele armazenará esse nome de arquivo myentry; caso contrário, ele produzirá um iterador de fim de sequência.

directory_iterator& increment(error_code& ec) noexcept;

Parâmetros

ec
O código de erro de status.

directory_iterator::operator!=

O operador retorna !(*this == right).

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

Parâmetros

right
O directory_iterator ser comparado com o directory_iterator.

directory_iterator::operator=

Os operadores de atribuição de membro padrão se comportam conforme o esperado.

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

Parâmetros

right
O directory_iterator que está sendo copiado para o directory_iterator.

directory_iterator::operator==

O operador 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 ser comparado com o directory_iterator.

directory_iterator::operator*

O operador 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 retorna *this. A segunda função membro faz uma cópia do objeto, chama increment()e 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.

Consulte também

<experimental/filesystem>
directory_entry classe