Sdílet prostřednictvím


Třída directory_iterator

Popisuje vstupní iterátor, který sekvencuje názvy souborů v adresáři. V případě iterátoru Xse 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 ghikó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 mydira pak se pokusí otevřít a číst mydir jako adresář. V případě úspěchu uloží první název souboru v adresáři myentryv 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++)