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.
Important
Op deze pagina wordt de directory_iterator klasse van de standaardimplementatie <experimental/filesystem> van de technische specificatie van het ISO C++ bestandssysteem (N4100) beschreven. Deze API is niet hetzelfde als de C++17-klasse directory_iterator in <filesystem>. Er worden verschillende handtekeningen gebruikt, waaronder een smallere set constructors die geen directory_options overbelasting hebben. De experimentele implementatie is verwijderd vanaf de Microsoft MSVC (Visual C++) 14.51 toolset. Nieuwe code moet in plaats daarvan de C++17-klasse directory_iterator gebruiken.
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").
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:<experimental/filesystem>
Naamruimte:std::experimental::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 overbelasting die een ec argument gebruikt, rapporteert 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, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) = default;
Parameters
pval
Het pad naar de opgeslagen bestandsnaam.
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) noexcept;
Parameters
ec
De statusfoutcode.
directory_iterator::operator!=
De operator 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&&) = default;
Parameters
right
Het directory_iterator wordt gekopieerd naar de directory_iterator.
directory_iterator::operator==
De operator 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
Het directory_iterator wordt 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.