Klasa directory_iterator
Opisuje iterator wejściowy, który sekwencjonuje nazwy plików w katalogu. W przypadku iteratora X
wyraż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 *this kopię 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 mydir
pliku , a następnie spróbuj otworzyć i odczytać mydir
jako katalog. W przypadku powodzenia przechowują pierwszą nazwę pliku w katalogu w myentry
katalogu ; 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 myentry
pliku ; 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++)