Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.