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