<experimental/filesystem> directory_iterator classe

Importante

Questa pagina descrive la directory_iterator classe dall'implementazione prendard <experimental/filesystem> di ISO C++ Filesystem Technical Specification (N4100). Questa API non corrisponde alla classe C++17 directory_iterator in <filesystem>. Usa firme diverse, incluso un set più stretto di costruttori senza directory_options overload. L'implementazione sperimentale è stata rimossa a partire dal set di strumenti Microsoft Visual C++ (MSVC) 14.51. Il nuovo codice deve usare invece la classe C++17 directory_iterator .

Descrive un iteratore di input che esegue la sequenza dei nomi file in una directory. Per un iteratore X, l'espressione *X restituisce un oggetto della classe directory_entry che esegue il wrapping del nome file e qualsiasi elemento noto sul relativo stato.

La classe archivia un oggetto di tipo path, chiamato mydir qui ai fini dell'esposizione, che rappresenta il nome della directory da sequenziare e un oggetto di tipo directory_entry denominato myentry qui, che rappresenta il nome file corrente nella sequenza di directory. Un oggetto costruito predefinito di tipo directory_entry ha un percorso vuoto mydir e rappresenta l'iteratore di fine sequenza.

Ad esempio, data la directory abc con voci def e ghi, il codice:

for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());

chiama visit con gli path("abc/def") argomenti e path("abc/ghi").

Sintassi

class directory_iterator;

Constructors

Costruttore Descrzione
directory_iterator Costruisce un iteratore di input che sequenzia i nomi file in una directory.

Funzioni membro

Funzione membro Descrzione
increment Tenta di passare al nome file successivo nella directory.

Operators

Operatore Descrzione
operator!= Restituisce !(*this == right).
operator= Gli operatori di assegnazione dei membri predefiniti si comportano come previsto.
operator== Restituisce true solo se e right*this sono iteratori di fine sequenza o entrambi non sono iteratori di fine sequenza.
operator* Restituisce myentry.
operator-> Restituisce &**this.
operator++ Chiama increment(), quindi restituisce *thiso crea una copia dell'oggetto , chiama increment(), quindi restituisce la copia.

Requirements

Intestazione:<experimental/filesystem>

Spazio dei nomi:std::experimental::filesystem

directory_iterator::directory_iterator

Il primo costruttore produce un iteratore di fine sequenza. I costruttori che accettano un pval argomento lo archivia in mydir, quindi tentano di aprire e leggere mydir come directory. In caso di esito positivo, archiviano il primo nome file nella directory in myentry; in caso contrario, producono un iteratore di fine sequenza. L'overload che accetta un ec argomento segnala errori anziché ec generare un'eccezione. I costruttori di copia e spostamento si comportano come previsto.

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;

Parametri

pval
Percorso del nome file archiviato.

ec
Codice di errore di stato.

directory_iterator
Oggetto archiviato.

directory_iterator::increment

La funzione tenta di passare al nome file successivo nella directory. In caso di esito positivo, archivia il nome file in myentry; in caso contrario, produce un iteratore di fine sequenza.

directory_iterator& increment(error_code& ec) noexcept;

Parametri

ec
Codice di errore di stato.

directory_iterator::operator!=

L'operatore restituisce !(*this == right).

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

Parametri

right
Oggetto directory_iterator confrontato con .directory_iterator

directory_iterator::operator=

Gli operatori di assegnazione dei membri predefiniti si comportano come previsto.

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

Parametri

right
Oggetto directory_iterator copiato in directory_iterator.

directory_iterator::operator==

L'operatore restituisce true solo se e *thisright sono iteratori di fine sequenza o entrambi non sono iteratori di fine sequenza.

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

Parametri

right
Oggetto directory_iterator confrontato con .directory_iterator

directory_iterator::operator*

L'operatore membro restituisce myentry.

const directory_entry& operator*() const;

directory_iterator::operator->

La funzione membro restituisce &**this.

const directory_entry * operator->() const;

directory_iterator::operator++

La prima funzione membro chiama increment(), quindi restituisce *this. La seconda funzione membro crea una copia dell'oggetto, chiama increment(), quindi restituisce la copia.

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

Parametri

int
Argomento fittizio. Si tratta di una convenzione C++ usata solo per distinguere l'operatore di incremento del prefisso dall'operatore di incremento del prefisso. Lo standard C++ richiede che il formato del prefisso assuma un parametro int fittizio.

Vedere anche

<experimental/filesystem>
directory_entry classe