Třída directory_iterator
Popisuje vstupní iterátor, který sekvencuje názvy souborů v adresáři. V případě iterátoru X
se výraz *X
vyhodnotí jako objekt třídy directory_entry
, který zabalí název souboru a cokoli, co je známo o jeho stavu.
Třída ukládá objekt typu path
, volaný mydir
zde pro účely expozice, který představuje název adresáře, který má být sekvencován, a objekt typu directory_entry
volaný myentry
zde, který představuje aktuální název souboru v adresářové sekvenci. Výchozí vytvořený objekt typu directory_entry
má prázdný mydir
název cesty a představuje iterátor konce sekvence.
Například v adresáři abc
s položkami def
a ghi
kódem:
for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());
volání visit
s argumenty path("abc/def")
a path("abc/ghi")
.
Další informace a příklady kódu najdete v tématu Navigace v systému souborů (C++).
Syntaxe
class directory_iterator;
Konstruktory
Konstruktor | Popis |
---|---|
directory_iterator |
Vytvoří vstupní iterátor, který sekvencuje názvy souborů v adresáři. |
Členské funkce
Členová funkce | Popis |
---|---|
increment |
Pokusí se přejít na další název souboru v adresáři. |
Operátory
Operátor | Popis |
---|---|
operator!= |
Vrací objekt !(*this == right) . |
operator= |
Výchozí operátory přiřazení členů se chovají podle očekávání. |
operator== |
Vrátí hodnotu true pouze v případě, že *this right jsou iterátory typu end-of-sequence nebo oba nejsou end-of-sequence-iterátory. |
operator* |
Vrací objekt myentry . |
operator-> |
Vrací objekt &**this . |
operator++ |
Volání increment() , pak vrátí *this , nebo vytvoří kopii objektu, volání increment() , a pak vrátí kopii. |
Požadavky
Záhlaví: <filesystem>
Obor názvů: std::filesystem
directory_iterator::directory_iterator
První konstruktor vytvoří iterátor konce sekvence. Druhý a třetí konstruktory se ukládají pval
do mydir
a pak se pokusí otevřít a číst mydir
jako adresář. V případě úspěchu uloží první název souboru v adresáři myentry
v opačném případě vytvoří iterátor konce sekvence.
Výchozí konstruktor se chová podle očekávání.
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&&) noexcept = default;
Parametry
pval
Cesta k názvu uloženého souboru.
ec
Kód chyby stavu.
directory_iterator
Uložený objekt.
directory_iterator::increment
Funkce se pokusí přejít na další název souboru v adresáři. V případě úspěchu uloží tento název souboru myentry
. Jinak vytvoří iterátor konce sekvence.
directory_iterator& increment(error_code& ec) noexcept;
directory_iterator::operator!=
Operátor členu vrátí !(*this == right)
.
bool operator!=(const directory_iterator& right) const;
Parametry
right
Porovnávání directory_iterator
s directory_iterator
.
directory_iterator::operator=
Výchozí operátory přiřazení členů se chovají podle očekávání.
directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;
Parametry
right
Zkopírovaná directory_iterator
do souboru directory_iterator
.
directory_iterator::operator==
Operátor člena vrátí true
pouze v případě, že *this
right
jsou iterátory end-of-sequence nebo oba nejsou end-of-sequence-iterátory.
bool operator==(const directory_iterator& right) const;
Parametry
right
Directory_iterator porovnávání s directory_iterator
.
directory_iterator::operator*
Operátor členu vrátí myentry
.
const directory_entry& operator*() const;
directory_iterator::operator->
Členová funkce vrátí &**this
.
const directory_entry * operator->() const;
directory_iterator::operator++
První volání increment()
členské funkce a poté vrátí *this
. Druhá členová funkce vytvoří kopii objektu, volání increment()
a poté vrátí kopii.
directory_iterator& operator++();
directory_iterator& operator++(int);
Parametry
int
Počet přírůstků.
Viz také
<filesystem>
Referenční informace k souborům hlaviček
Navigace v systému souborů (C++)