directory_iterator klas

Beschrijft een invoer-iterator die de bestandsnamen in een map doorloopt. Voor een iterator Xevalueert de expressie *X naar een object van klasse directory_entry dat de bestandsnaam verpakt en alles wat bekend is over de status ervan.

De klasse slaat een object van het type pathop, dat hier wordt genoemd mydir voor de doeleinden van tentoonstelling, die de naam van de map vertegenwoordigt die moet worden gesequentieerd en een object van het type directory_entry dat hier wordt genoemd myentry , die de huidige bestandsnaam in de directoryreeks vertegenwoordigt. Een standaard gebouwd object van het type directory_entry heeft een lege mydir padnaam en vertegenwoordigt het einde van de reeks iterator.

Bijvoorbeeld, op basis van de map abc met vermeldingen def en ghi, de code:

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

aanroepen visit met de argumenten path("abc/def") en path("abc/ghi").

Zie Bestandssysteemnavigatie (C++) voor meer informatie en codevoorbeelden.

Syntaxis

class directory_iterator;

Constructors

Constructeur Beschrijving
directory_iterator Hiermee wordt een invoer-iterator samengesteld die de bestandsnamen in een map doorloopt.

Functies voor leden

Lid, functie Beschrijving
increment Hiermee wordt geprobeerd naar de volgende bestandsnaam in de map te gaan.

Bedieners

Operator Beschrijving
operator!= Retourneert !(*this == right).
operator= De standaardoperators voor ledentoewijzing gedragen zich zoals verwacht.
operator== Retourneert true alleen als beide *this en right end-of-sequence iterators zijn of beide geen end-of-sequence-iterators zijn.
operator* Retourneert myentry.
operator-> Retourneert &**this.
operator++ Aanroepen increment(), vervolgens retourneren *thisof een kopie van het object maken, aanroepen increment()en vervolgens de kopie retourneren.

Requirements

Rubriek:<filesystem>

Naamruimte:std::filesystem

directory_iterator::directory_iterator

De eerste constructor produceert een iterator voor het einde van de reeks. De constructors waarin een pval argument wordt opgeslagen mydir, proberen deze vervolgens te openen en te lezen mydir als een map. Als dit lukt, slaan ze de eerste bestandsnaam op in de map in myentry; anders produceren ze een iterator voor het einde van de reeks. De overbelastingen die een options argument gebruiken, bepalen hoe de map wordt geïnventariseerd. De overbelastingen waarvoor een argument wordt ec gebruikt, rapporteren fouten in ec plaats van een uitzondering te genereren. De constructors voor kopiëren en verplaatsen gedragen zich zoals verwacht.

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
Het pad naar de opgeslagen bestandsnaam.

options
De directory_options waarde waarmee wordt bepaald hoe de map wordt geïnventariseerd. De standaardwaarde is directory_options::none.

ec
De statusfoutcode.

directory_iterator
Het opgeslagen object.

directory_iterator::increment

De functie probeert naar de volgende bestandsnaam in de map te gaan. Als dit lukt, wordt die bestandsnaam opgeslagen; myentryanders produceert het een iterator voor het einde van de reeks.

directory_iterator& increment(error_code& ec);

Parameters

ec
De statusfoutcode.

directory_iterator::operator!=

De lidoperator retourneert !(*this == right).

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

Parameters

right
Het directory_iterator wordt vergeleken met de directory_iterator.

directory_iterator::operator=

De standaardoperators voor ledentoewijzing gedragen zich zoals verwacht.

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

Parameters

right
Het directory_iterator wordt gekopieerd naar de directory_iterator.

directory_iterator::operator==

De lidoperator retourneert true alleen als beide *this en right end-of-sequence iterators zijn of beide geen end-of-sequence-iterators zijn.

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

Parameters

right
De directory_iterator vergeleken met de directory_iterator.

directory_iterator::operator*

De lidoperator retourneert myentry.

const directory_entry& operator*() const;

directory_iterator::operator->

De lidfunctie retourneert &**this.

const directory_entry * operator->() const;

directory_iterator::operator++

De eerste lidfunctie roept increment()aan en retourneert *thisvervolgens . De tweede lidfunctie maakt een kopie van het object, roept aan increment()en retourneert vervolgens de kopie.

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

Parameters

int
Dummy-argument. Het is een C++-conventie die alleen wordt gebruikt om de operator voor incrementele voorvoegsels te onderscheiden van de operator voor incrementele voorvoegsels. Voor de C++-standaard moet het postfix-formulier een dummy int-parameter gebruiken.

Zie ook

<filesystem>
headerbestanden
Bestandssysteemnavigatie (C++)