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.
Important
Den här sidan beskriver directory_iterator klassen från den förstandardimplementering <experimental/filesystem> av ISO C++ Filesystem Technical Specification (N4100). Det här API:et är inte samma som klassen C++17 directory_iterator i <filesystem>. Den använder olika signaturer, inklusive en smalare uppsättning konstruktorer som inte har någon directory_options överlagring. Den experimentella implementeringen togs bort från och med verktygsuppsättningen Microsoft Visual C++ (MSVC) 14.51. Ny kod bör använda klassen C++17 directory_iterator i stället.
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").
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:<experimental/filesystem>
Namnområde:std::experimental::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. Överlagringen som tar ett ec argument rapporterar fel 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, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) = default;
Parameters
pval
Sökvägen till det lagrade filnamnet.
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) noexcept;
Parameters
ec
Statusfelkoden.
directory_iterator::operator!=
Operatorn 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&&) = default;
Parameters
right
Som directory_iterator kopieras till directory_iterator.
directory_iterator::operator==
Operatorn returnerar true endast om både *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 varelse som jämförs directory_iteratormed .
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.