Namensräume
Varianten
Aktionen

std::filesystem::directory_iterator::directory_iterator

Von cppreference.com
 
 
 
 
directory_iterator() noexcept;
(1) (seit C++17)
explicit directory_iterator( const std::filesystem::path& p );
(2) (seit C++17)
directory_iterator( const std::filesystem::path& p,
                    std::filesystem::directory_options options );
(3) (seit C++17)
directory_iterator( const std::filesystem::path& p, std::error_code& ec );
(4) (seit C++17)
directory_iterator( const std::filesystem::path& p,

                    std::filesystem::directory_options options,

                    std::error_code& ec );
(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 Verzeichnisiterator.

1) Konstruiert den End-Iterator.
2) Konstruiert einen Verzeichnisiterator, der auf den ersten Verzeichniseintrag eines Verzeichnisses verweist, das durch p identifiziert wird. Wenn p auf eine nicht existierende Datei oder kein Verzeichnis verweist, wird std::filesystem::filesystem_error ausgelöst.
3) Dasselbe wie (2), aber wenn std::filesystem::directory_options::skip_permission_denied in options gesetzt ist und beim Konstruieren ein Fehler wegen verweigerter Berechtigung auftritt, wird der End-Iterator konstruiert und kein Fehler gemeldet.
4) Konstruiert einen Verzeichnisiterator, der auf den ersten Verzeichniseintrag eines Verzeichnisses verweist, das durch p identifiziert wird. Wenn p auf eine nicht existierende Datei oder kein Verzeichnis verweist, wird der End-Iterator zurückgegeben und ec gesetzt.
5) Dasselbe wie (4), aber wenn std::filesystem::directory_options::skip_permission_denied in options gesetzt ist und beim Konstruieren ein Fehler wegen verweigerter Berechtigung auftritt, wird der End-Iterator konstruiert und kein Fehler gemeldet.
6) Kopierkonstruktor.
7) Move-Konstruktor.

Inhalt

[edit] Parameter

p - Pfad zum Dateisystemobjekt, auf das der Verzeichnisiterator verweisen wird
ec - Ausgabeparameter für Fehlerberichte in den nicht-werfenden Überladungen
options - die Menge der BitmaskType-Optionen, die das Verhalten des Verzeichnisiterators steuern
Sonstiges - ein anderer Verzeichnisiterator, der als Quelle zur Initialisierung des Verzeichnisiterators verwendet wird

[edit] Ausnahmen

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

2,3) Löst std::filesystem::filesystem_error bei zugrunde liegenden Betriebssystem-API-Fehlern aus, konstruiert mit p als erstes Pfadargument und dem Betriebssystem-Fehlercode als Fehlercode-Argument.
4,5) Setzt einen std::error_code&-Parameter auf den Betriebssystem-API-Fehlercode, wenn ein Betriebssystem-API-Aufruf fehlschlägt, und führt ec.clear() aus, wenn keine Fehler auftreten.

[edit] Hinweise

Um das aktuelle Verzeichnis zu durchlaufen, konstruieren Sie den Iterator als directory_iterator(".") anstelle von directory_iterator("").

[edit] Beispiel

[edit] 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 allokieren noexcept entfernt