Udostępnij za pośrednictwem


Klasa directory_iterator

Opisuje iterator wejściowy, który sekwencjonuje nazwy plików w katalogu. W przypadku iteratora Xwyrażenie *X oblicza obiekt klasy directory_entry , który opakowuje nazwę pliku i wszystkie znane informacje o jego stanie.

Klasa przechowuje obiekt typu path, wywoływany mydir tutaj do celów ekspozycji, który reprezentuje nazwę katalogu do sekwencjonowania, oraz obiekt typu directory_entry o nazwie myentry tutaj, który reprezentuje bieżącą nazwę pliku w sekwencji katalogów. Domyślny skonstruowany obiekt typu directory_entry ma pustą mydir nazwę ścieżki i reprezentuje iterator końca sekwencji.

Na przykład, biorąc pod uwagę katalog abc z wpisami def i ghi, kod:

for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());

wywołuje visit argumenty path("abc/def") i path("abc/ghi").

Aby uzyskać więcej informacji i przykłady kodu, zobacz Nawigacja systemu plików (C++).

Składnia

class directory_iterator;

Konstruktory

Konstruktor opis
directory_iterator Tworzy iterator wejściowy, który sekwencjonuje nazwy plików w katalogu.

Funkcje składowe

Funkcja składowa opis
increment Próbuje przejść do następnej nazwy pliku w katalogu.

Operatory

Operator opis
operator!= Zwraca wartość !(*this == right).
operator= Domyślne operatory przypisania składowych zachowują się zgodnie z oczekiwaniami.
operator== Zwraca wartość true tylko wtedy, gdy *this right obie i są iteratorami końca sekwencji lub obie nie są iteratorami typu end-of-sequence.
operator* Zwraca wartość myentry.
operator-> Zwraca wartość &**this.
operator++ Wywołuje increment()metodę , a następnie zwraca *thiskopię obiektu , wywołuje increment()metodę , a następnie zwraca kopię.

Wymagania

Nagłówek: <filesystem>

Przestrzeń nazw: std::filesystem

directory_iterator::directory_iterator

Pierwszy konstruktor tworzy iterator końca sekwencji. Drugi i trzeci konstruktor przechowuje pval w mydirpliku , a następnie spróbuj otworzyć i odczytać mydir jako katalog. W przypadku powodzenia przechowują pierwszą nazwę pliku w katalogu w myentrykatalogu ; w przeciwnym razie tworzą iterator końca sekwencji.

Domyślny konstruktor zachowuje się zgodnie z oczekiwaniami.

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
Przechowywana ścieżka nazwy pliku.

ec
Kod błędu stanu.

directory_iterator
Przechowywany obiekt.

directory_iterator::increment

Funkcja próbuje przejść do następnej nazwy pliku w katalogu. Jeśli to się powiedzie, przechowuje nazwę pliku w myentrypliku ; w przeciwnym razie tworzy iterator końca sekwencji.

directory_iterator& increment(error_code& ec) noexcept;

directory_iterator::operator!=

Operator elementu członkowskiego zwraca wartość !(*this == right).

bool operator!=(const directory_iterator& right) const;

Parametry

right
Element directory_iterator jest porównywany z elementem directory_iterator.

directory_iterator::operator=

Domyślne operatory przypisania składowych zachowują się zgodnie z oczekiwaniami.

directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;

Parametry

right
Element directory_iterator kopiowany do pliku directory_iterator.

directory_iterator::operator==

Operator składowy zwraca wartość true tylko wtedy, gdy *this iteratory typu "end-of-sequence" i right "end-of-sequence" nie są iteratorami typu end-of-sequence.

bool operator==(const directory_iterator& right) const;

Parametry

right
Directory_iterator porównywany z elementem directory_iterator.

directory_iterator::operator*

Operator elementu członkowskiego zwraca wartość myentry.

const directory_entry& operator*() const;

directory_iterator::operator->

Funkcja składowa zwraca wartość &**this.

const directory_entry * operator->() const;

directory_iterator::operator++

Pierwsza funkcja składowa wywołuje metodę increment(), a następnie zwraca wartość *this. Druga funkcja składowa tworzy kopię obiektu, wywołuje increment()metodę , a następnie zwraca kopię.

directory_iterator& operator++();
directory_iterator& operator++(int);

Parametry

int
Liczba przyrostów.

Zobacz też

<filesystem>
Odwołanie do plików nagłówka
Nawigacja systemu plików (C++)