Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
Esta página descreve a directory_iterator classe da implementação pré-padrão <experimental/filesystem> da Especificação Técnica do Sistema de Ficheiros ISO C++ (N4100). Esta API não é a mesma que a classe C++17 directory_iterator em <filesystem>. Utiliza assinaturas diferentes, incluindo um conjunto mais restrito de construtores que não directory_options tem sobrecarga. A implementação experimental foi removida a partir do conjunto de ferramentas Microsoft Visual C++ (MSVC) 14.51. O novo código deve usar a classe C++17 directory_iterator em vez disso.
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").
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:<experimental/filesystem>
Espaço de nomes:std::experimental::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. A sobrecarga que leva um ec argumento reporta erros ec em 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, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) = default;
Parameters
pval
O caminho do nome do ficheiro armazenado.
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) noexcept;
Parameters
ec
O código de erro de status.
directory_iterator::operator!=
O operador 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&&) = default;
Parameters
right
O directory_iterator ser copiado para o directory_iterator.
directory_iterator::operator==
O operador 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
O directory_iterator ser comparado ao 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.