directory_iterator-Klasse

Beschreibt einen Eingabeiterator, der alle Dateinamen in einem Verzeichnis durchläuft. Bei einem Iterator Xwertet der Ausdruck *X ein Objekt der Klasse directory_entry aus, das den Dateinamen umschließt, und alles, was über seinen Status bekannt ist.

Die Klasse speichert ein Objekt vom Typ path, das hier für die Zwecke der Exposition aufgerufen mydir wird, die den Namen des zu sequenzierenden Verzeichnisses darstellt, und ein Objekt vom Typ hier directory_entry aufgerufen myentry , das den aktuellen Dateinamen in der Verzeichnissequenz darstellt. Ein vom Typ directory_entry erstelltes Standardobjekt weist einen leeren mydir Pfadnamen auf und stellt den Iterator für die Endsequenz dar.

Beispielsweise, wenn das Verzeichnis abc mit Einträgen def und ghidem Code:

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

Aufrufe visit mit den Argumenten path("abc/def") und path("abc/ghi").

Weitere Informationen und Codebeispiele finden Sie unter File System Navigation (C++) (Dateisystemnavigation (C++)).

Syntax

class directory_iterator;

Konstruktoren

Konstruktor Beschreibung
directory_iterator Erstellt einen Eingabe-Iterator, der durch die Dateinamen in einem Verzeichnis sequenziert wird.

Memberfunktionen

Memberfunktion Beschreibung
increment Versucht, zum nächsten Dateinamen im Verzeichnis zu wechseln.

Operatoren

Operator Beschreibung
operator!= Gibt !(*this == right) zurück.
operator= Die als Standard festgelegten Memberzuweisungsoperatoren verhalten sich wie erwartet.
operator== Gibt nur zurück true , wenn beide *this und right End-of-Sequence-Iteratoren oder beide nicht End-of-Sequence-Iteratoren sind.
operator* Gibt myentryzurück.
operator-> Gibt &**thiszurück.
operator++ Ruft increment()auf, gibt *thisdann eine Kopie des Objekts zurück oder erstellt eine Kopie des Objekts, ruft increment()und gibt dann die Kopie zurück.

Anforderungen

Header<filesystem>:

Namespace:std::filesystem

directory_iterator::directory_iterator

Der erste Konstruktor erzeugt einen Sequenzende-Iterator. Der zweite und dritte Konstruktor speichern pval in mydir, und versuchen Sie dann, als Verzeichnis zu öffnen und zu lesen mydir . Bei erfolgreicher Ausführung speichern sie den ersten Dateinamen im Verzeichnis in myentry; andernfalls erzeugen sie einen Iterator für die Endsequenz.

Der Standardkonstruktor verhält sich wie erwartet.

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&&) noexcept = default;

Parameter

pval
Der gespeicherte Dateinamepfad.

ec
Der Statusfehlercode.

directory_iterator
Das gespeicherte Objekt.

directory_iterator::increment

Die Funktion versucht, zum nächsten Dateinamen im Verzeichnis zu gelangen. Bei erfolgreicher Ausführung speichert sie diesen Dateinamen in myentry; andernfalls wird ein Iterator für die Endsequenz erzeugt.

directory_iterator& increment(error_code& ec) noexcept;

directory_iterator::operator!=

Der Memberoperator gibt !(*this == right)zurück.

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

Parameter

right
Der directory_iterator Vergleich mit dem directory_iterator.

directory_iterator::operator=

Die als Standard festgelegten Memberzuweisungsoperatoren verhalten sich wie erwartet.

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

Parameter

right
Das directory_iterator kopierte In das directory_iterator.

directory_iterator::operator==

Der Memberoperator gibt nur zurück true , wenn beide *this und right End-of-Sequence-Iteratoren oder beide nicht End-of-Sequence-Iteratoren sind.

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

Parameter

right
Die directory_iterator verglichen mit dem directory_iterator.

directory_iterator::operator*

Der Memberoperator gibt myentryzurück.

const directory_entry& operator*() const;

directory_iterator::operator->

Die Memberfunktion gibt &**this zurück.

const directory_entry * operator->() const;

directory_iterator::operator++

Die erste Memberfunktion ruft increment()die Funktion auf und gibt dann zurück *this. Die zweite Memberfunktion erstellt eine Kopie des Objekts, ruft increment()auf und gibt dann die Kopie zurück.

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

Parameter

int
Die Anzahl der Inkremente.

Siehe auch

<filesystem>
Headerdateienreferenz
Dateisystemnavigation (C++)