<experimental/filesystem> directory_iterator klasa

Important

Na tej stronie opisano klasę directory_iterator ze wstępniestandardowej <experimental/filesystem> implementacji specyfikacji technicznej systemu plików ISO C++ (N4100). Ten interfejs API nie jest taki sam jak klasa C++17 directory_iterator w systemie <filesystem>. Używa różnych podpisów, w tym węższego zestawu konstruktorów, który nie directory_options ma przeciążenia. Implementacja eksperymentalna została usunięta, począwszy od zestawu narzędzi Microsoft Visual C++ (MSVC) 14.51. Nowy kod powinien zamiast tego używać klasy C++17 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").

Składnia

class directory_iterator;

Constructors

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.

Operatorów

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 *thisright 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:<experimental/filesystem>

Przestrzeń nazw: std::experimental::filesystem

directory_iterator::directory_iterator

Pierwszy konstruktor tworzy iterator końca sekwencji. Konstruktory, które przyjmują argument przechowują pval go w mydirpliku , a następnie pró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. Przeciążenie, które przyjmuje ec argument zgłasza błędy ec , zamiast zgłaszać wyjątek. Konstruktory kopiowania i przenoszenia zachowują 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&&) = default;

Parameters

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;

Parameters

ec
Kod błędu stanu.

directory_iterator::operator!=

Operator zwraca wartość !(*this == right).

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

Parameters

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&&) = default;

Parameters

right
Element directory_iterator kopiowany do pliku directory_iterator.

directory_iterator::operator==

Operator zwraca tylko true wtedy, gdy *this iteratory typu "end-of-sequence" i right "end-of-sequence", lub oba nie są iteratorami typu end-of-sequence.

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

Parameters

right
Element directory_iterator jest 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);

Parameters

int
Fikcyjny argument. Jest to konwencja języka C++ używana tylko do odróżnienia operatora przyrostka postfiksu od operatora przyrostu prefiksu. Standard C++ wymaga, aby formularz postfiksu przyjmować fikcyjny parametr int.

Zobacz także

<experimental/filesystem>
directory_entry klasa