Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Beskriver en indata-iterator som sekvenser genom filnamnen i en katalog. För en iterator Xutvärderas uttrycket *X till ett objekt av klassen directory_entry som omsluter filnamnet och allt som är känt om dess status.
Klassen lagrar ett objekt av typen path, som anropas mydir här för exposition, som representerar namnet på katalogen som ska sekvenseras, och ett objekt av typen directory_entry som heter myentry här, som representerar det aktuella filnamnet i katalogsekvensen. Ett standardkonstruerat objekt av typen directory_entry har ett tomt mydir sökvägsnamn och representerar iteratorn i slutet av sekvensen.
Till exempel, med tanke på katalogen abc med poster def och ghi, koden:
for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());
anropar visit med argumenten path("abc/def") och path("abc/ghi").
Mer information och kodexempel finns i Filsystemnavigering (C++).
Syntax
class directory_iterator;
Constructors
| Constructor | Beskrivning |
|---|---|
directory_iterator |
Konstruerar en indata-iterator som sekvenser genom filnamnen i en katalog. |
Medlemsfunktioner
| Medlemsfunktion | Beskrivning |
|---|---|
increment |
Försöker gå vidare till nästa filnamn i katalogen. |
Operators
| Operator | Beskrivning |
|---|---|
operator!= |
Returnerar !(*this == right). |
operator= |
Standardoperatorerna för medlemstilldelning fungerar som förväntat. |
operator== |
Returnerar true endast om både *this och right är iteratorer i slutet av sekvensen eller båda inte är end-of-sequence-iteratorer. |
operator* |
Returnerar myentry. |
operator-> |
Returnerar &**this. |
operator++ |
Anropar increment(), returnerar *this, eller gör en kopia av objektet, anropar increment()och returnerar sedan kopian. |
Requirements
rubrik:<filesystem>
Namnområde:std::filesystem
directory_iterator::directory_iterator
Den första konstruktorn skapar en iterator i slutet av sekvensen. Konstruktorerna som tar ett pval argument lagrar det i mydiroch försöker sedan öppna och läsa mydir som en katalog. Om det lyckas lagrar de det första filnamnet i katalogen i myentry, annars skapar de en iterator i slutet av sekvensen. Överlagringarna som tar en options argumentkontroll över hur katalogen räknas upp. Överlagringarna som tar ett ec argumentrapportfel i ec i stället för att utlösa ett undantag. Kopierings- och flyttkonstruktorerna fungerar som förväntat.
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
Sökvägen till det lagrade filnamnet.
options
Värdet directory_options som styr hur katalogen räknas upp. Standardvärdet är directory_options::none.
ec
Statusfelkoden.
directory_iterator
Det lagrade objektet.
directory_iterator::increment
Funktionen försöker gå vidare till nästa filnamn i katalogen. Om det lyckas lagrar det filnamnet i myentry, annars genererar det en iterator i slutet av sekvensen.
directory_iterator& increment(error_code& ec);
Parameters
ec
Statusfelkoden.
directory_iterator::operator!=
Medlemsoperatorn returnerar !(*this == right).
bool operator!=(const directory_iterator& right) const;
Parameters
right
Den directory_iterator varelse som jämförs directory_iteratormed .
directory_iterator::operator=
Standardoperatorerna för medlemstilldelning fungerar som förväntat.
directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;
Parameters
right
Som directory_iterator kopieras till directory_iterator.
directory_iterator::operator==
Medlemsoperatorn returnerar true endast om båda *this och right är iteratorer i slutet av sekvensen eller båda inte är end-of-sequence-iteratorer.
bool operator==(const directory_iterator& right) const;
Parameters
right
Den directory_iterator jämförs med directory_iterator.
directory_iterator::operator*
Medlemsoperatorn returnerar myentry.
const directory_entry& operator*() const;
directory_iterator::operator->
Medlemsfunktionen returnerar &**this.
const directory_entry * operator->() const;
directory_iterator::operator++
Den första medlemsfunktionen anropar increment()och returnerar *thissedan . Den andra medlemsfunktionen gör en kopia av objektet, anropar increment()och returnerar sedan kopian.
directory_iterator& operator++();
directory_iterator operator++(int);
Parameters
int
Dummy-argument. Det är en C++-konvention som endast används för att skilja postfixet inkrementsoperatorn från prefixets inkrementsoperator. C++-standarden kräver att postfixformuläret använder en dummy-int-parameter.
Se även
<filesystem>
referens för huvudfiler
Filsystemnavigering (C++)