Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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++)