Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.