std::filesystem::directory_iterator::directory_iterator
Von cppreference.com
< cpp | filesystem | directory iterator
| 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, |
(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
| Dieser Abschnitt ist unvollständig Grund: kein 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 |