Namespaces
Variants

std::filesystem::directory_iterator:: directory_iterator

From cppreference.net
directory_iterator ( ) noexcept ;
(1) (seit C++17)
explicit directory_iterator ( const std:: filesystem :: path & p ) ;
(2) (seit C++17)
(3) (seit C++17)
directory_iterator ( const std:: filesystem :: path & p, std:: error_code & ec ) ;
(4) (seit C++17)
(5) (seit C++17)
directory_iterator ( const directory_iterator & other ) = default ;
(6) (seit C++17)
directory_iterator ( directory_iterator && other ) = default ;
(7) (seit C++17)

Konstruiert einen neuen Verzeichnis-Iterator.

1) Konstruiert den End-Iterator.
2) Konstruiert einen Directory-Iterator, der auf den ersten Directory-Eintrag eines durch p identifizierten Verzeichnisses verweist. Wenn p auf eine nicht existierende Datei oder kein Verzeichnis verweist, wird std::filesystem::filesystem_error geworfen.
3) Gleich wie (2) , aber wenn std::filesystem::directory_options::skip_permission_denied in options gesetzt ist und beim Konstruieren ein Berechtigungsfehler auftritt, wird der End-Iterator konstruiert und kein Fehler gemeldet.
4) Konstruiert einen Verzeichnis-Iterator, der auf den ersten Verzeichniseintrag eines durch p identifizierten Verzeichnisses verweist. Wenn p auf eine nicht existierende Datei oder kein Verzeichnis verweist, wird der End-Iterator zurückgegeben und ec gesetzt.
5) Gleich wie (4) , aber wenn std::filesystem::directory_options::skip_permission_denied in options gesetzt ist und beim Konstruieren ein Berechtigungsfehler auftritt, wird der End-Iterator konstruiert und kein Fehler gemeldet.
6) Copy-Konstruktor.
7) Move-Konstruktor.

Inhaltsverzeichnis

Parameter

p - Pfad zum Dateisystemobjekt, auf das das Verzeichnisiterator referenzieren wird
ec - Out-Parameter für Fehlerberichterstattung in den nicht-werfenden Überladungen
options - die Menge der BitmaskType Optionen, die das Verhalten des Verzeichnisiterators steuern
other - ein weiterer Verzeichnisiterator, der als Quelle zur Initialisierung des Verzeichnisiterators verwendet wird

Exceptions

Jede Überladung, die nicht als noexcept gekennzeichnet ist, kann std::bad_alloc auslösen, wenn die Speicherzuweisung fehlschlägt.

2,3) Wirft std::filesystem::filesystem_error bei zugrundeliegenden OS-API-Fehlern, konstruiert mit p als erstem Pfadargument und dem OS-Fehlercode als Fehlercodeargument.
4,5) Setzt einen std:: error_code & Parameter auf den OS-API-Fehlercode, wenn ein OS-API-Aufruf fehlschlägt, und führt ec. clear ( ) aus, falls keine Fehler auftreten.

Hinweise

Um über das aktuelle Verzeichnis zu iterieren, konstruieren Sie den Iterator als directory_iterator ( "." ) anstatt von directory_iterator ( "" ) .

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 3013 C++17 error_code Überladung als noexcept markiert, kann aber Speicher allozieren noexcept entfernt