directory_entry-Klasse

Beschreibt ein Objekt, das von der Ableitung eines directory_iterator oder eines Objekts recursive_directory_iteratorzurückgegeben wird. A directory_entry wraps a path and, as an optimization, can cache file attributes that are obtained while iterating a directory.

Syntax

class directory_entry;

Hinweise

Ein directory_entry Objekt speichert ein path. Als Optimierung kann sie auch die Attribute und den Status der Datei zwischenspeichern, auf die sich der Pfad bezieht. Die zwischengespeicherten Daten werden aufgefüllt, wenn der Eintrag von einem Verzeichnis iterator oder beim Aufrufen refresherstellt wird. Beobachter wie file_size, last_write_time, statusund die verschiedenen is_* Prädikate geben die zwischengespeicherten Daten zurück, wenn sie verfügbar sind. Andernfalls fragen sie das Dateisystem ab.

Weitere Informationen und Codebeispiele finden Sie unter File System Navigation (C++) (Dateisystemnavigation (C++)).

Konstruktoren

Konstruktor Beschreibung
directory_entry Erstellt ein Objekt vom Typ directory_entry.

Memberfunktionen

Memberfunktion Beschreibung
assign Ersetzt den gespeicherten Pfad und aktualisiert die zwischengespeicherten Attribute.
exists Überprüft, ob sich der Eintrag auf eine vorhandene Datei bezieht.
file_size Ruft die Größe der referenzierten Datei in Bytes ab.
hard_link_count Ruft die Anzahl der endgültigen Verknüpfungen mit der referenzierten Datei ab.
is_block_file Überprüft, ob es sich bei der referenzierten Datei um eine block spezielle Datei handelt.
is_character_file Überprüft, ob es sich bei der referenzierten Datei um eine Sonderzeichendatei handelt.
is_directory Überprüft, ob es sich bei der referenzierten Datei um ein Verzeichnis handelt.
is_fifo Überprüft, ob es sich bei der referenzierten Datei um eine benannte Pipe (FIFO) handelt.
is_other Überprüft, ob es sich bei der referenzierten Datei um eine andere Datei handelt.
is_regular_file Überprüft, ob es sich bei der referenzierten Datei um eine normale Datei handelt.
is_socket Überprüft, ob es sich bei der referenzierten Datei um einen Socket handelt.
is_symlink Überprüft, ob es sich bei der referenzierten Datei um eine symbolische Verknüpfung handelt.
last_write_time Ruft den Zeitpunkt der letzten Datenänderung der referenzierten Datei ab.
path Gibt den gespeicherten Pfad zurück.
refresh Aktualisiert die zwischengespeicherten Dateiattribute.
replace_filename Ersetzt den Dateinamen des gespeicherten Pfads und aktualisiert die zwischengespeicherten Attribute.
status Ruft den Status der referenzierten Datei ab, die auf symbolische Verknüpfungen folgt.
symlink_status Ruft den Status der Referenzdatei ohne symbolische Verknüpfungen ab.

Operatoren

Operator Beschreibung
operator= Weist der directory_entry.
operator const path& Gibt den gespeicherten Pfad zurück.
operator== Überprüft, ob zwei directory_entry Objekte gleich sind.
operator<=> Führt einen dreiseitigen Vergleich von zwei directory_entry Objekten aus. (C++20)
operator!= Überprüft, ob zwei directory_entry Objekte ungleich sind. Ein explizites Mitglied in C++17; unterstützt durch umgeschriebene Vergleiche in C++20 und höher.
operator< Überprüft, ob die directory_entry Sortierung vor einem anderen directory_entry. Ein explizites Mitglied in C++17; unterstützt durch umgeschriebene Vergleiche in C++20 und höher.
operator<= Überprüft, ob die directory_entry Sortierung vor oder gleich einem anderen directory_entryist. Ein explizites Mitglied in C++17; unterstützt durch umgeschriebene Vergleiche in C++20 und höher.
operator> Überprüft, ob die directory_entry Sortierung nach einem anderen directory_entry. Ein explizites Mitglied in C++17; unterstützt durch umgeschriebene Vergleiche in C++20 und höher.
operator>= Überprüft, ob die directory_entry Sortierung nach oder gleich einer anderen directory_entrysortiert wird. Ein explizites Mitglied in C++17; unterstützt durch umgeschriebene Vergleiche in C++20 und höher.

Anforderungen

Kopfball:<filesystem>

Namespace:std::filesystem

directory_entry

Erstellt ein Objekt vom Typ directory_entry.

directory_entry() noexcept = default;
directory_entry(const directory_entry&) = default;
directory_entry(directory_entry&&) noexcept = default;

explicit directory_entry(const std::filesystem::path& p);
directory_entry(const std::filesystem::path& p, std::error_code& ec);

~directory_entry();

Parameter

p
Der Pfad zu der Datei, auf die der Eintrag verweist.

EG
Der Ausgabefehlercode für den Vorgang.

Hinweise

Die Standard-, Kopier- und Verschiebungskonstruktoren verhalten sich wie erwartet. Die Konstruktoren, die einen path Speicher p verwenden und dann aufrufen refresh , um die zwischengespeicherten Attribute aufzufüllen. Die Überladung, die einen error_code Fehler in ec angibt, anstatt sie zu auslösen, und löscht den gespeicherten Pfad, wenn die Aktualisierung fehlschlägt.

operator =

Weist der directory_entry.

directory_entry& operator=(const directory_entry&) = default;
directory_entry& operator=(directory_entry&&) noexcept = default;

Parameter

right
Die directory_entry zu kopierende oder in diese directory_entryzu verschiebende Datei.

Hinweise

Die standardmäßigen Zuordnungsoperatoren verhalten sich wie erwartet.

Zuweisen

Ersetzt den gespeicherten Pfad und aktualisiert die zwischengespeicherten Attribute.

void assign(const std::filesystem::path& p);
void assign(const std::filesystem::path& p, std::error_code& ec);

Parameter

p
Der neue Pfad zum Speichern.

EG
Der Ausgabefehlercode für den Vorgang.

Hinweise

Ersetzt den gespeicherten Pfad durch p und ruft dann auf refresh , um die zwischengespeicherten Attribute zu aktualisieren. Die Überladung, bei der fehler error_code in ec gemeldet werden, anstatt sie zu auslösen.

replace_filename

Ersetzt den Dateinamen des gespeicherten Pfads und aktualisiert die zwischengespeicherten Attribute.

void replace_filename(const std::filesystem::path& p);
void replace_filename(const std::filesystem::path& p, std::error_code& ec);

Parameter

p
Der Ersatzdateiname.

EG
Der Ausgabefehlercode für den Vorgang.

Hinweise

Ersetzt die Dateiname-Komponente des gespeicherten Pfads durch p, als wäre es durch path().replace_filename(p), dann wird aufgerufen refresh. Die Überladung, bei der fehler error_code in ec gemeldet werden, anstatt sie zu auslösen.

Aktualisieren

Aktualisiert die zwischengespeicherten Dateiattribute.

void refresh();
void refresh(std::error_code& ec) noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Hinweise

Liest die Attribute der Datei, auf die der gespeicherte Pfad verweist, und speichert sie in der directory_entry. Rufen Sie auf refresh , um die zwischengespeicherten Daten nach änderungen der referenzierten Datei zu aktualisieren. Die Überladung, bei der fehler error_code in ec gemeldet werden, anstatt sie zu auslösen.

path

Gibt den gespeicherten Pfad zurück.

const std::filesystem::path& path() const noexcept;

Operator const path&

Gibt den gespeicherten Pfad zurück.

operator const std::filesystem::path&() const noexcept;

existiert

Überprüft, ob sich der Eintrag auf eine vorhandene Datei bezieht.

bool exists() const;
bool exists(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

truewenn sich der gespeicherte Pfad auf eine vorhandene Datei bezieht; andernfalls . false Entspricht dem Aufrufen filesystem::exists(status())von .

is_block_file

Überprüft, ob es sich bei der referenzierten Datei um eine block spezielle Datei handelt.

bool is_block_file() const;
bool is_block_file(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

truewenn es sich bei der referenzierten Datei um eine block spezielle Datei handelt; andernfalls . false Diese Funktion gibt immer auf Windows zurückfalse.

is_character_file

Überprüft, ob es sich bei der referenzierten Datei um eine Sonderzeichendatei handelt.

bool is_character_file() const;
bool is_character_file(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

truewenn es sich bei der referenzierten Datei um eine Sonderzeichendatei handelt; andernfalls . false Diese Funktion gibt immer auf Windows zurückfalse.

is_directory

Überprüft, ob es sich bei der referenzierten Datei um ein Verzeichnis handelt.

bool is_directory() const;
bool is_directory(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

truewenn es sich bei der referenzierten Datei um ein Verzeichnis handelt; andernfalls . false Entspricht dem Aufrufen filesystem::is_directory(status())von .

is_fifo

Überprüft, ob es sich bei der referenzierten Datei um eine benannte Pipe (FIFO) handelt.

bool is_fifo() const;
bool is_fifo(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

truewenn es sich bei der referenzierten Datei um ein FIFO handelt; andernfalls . false Diese Funktion gibt immer auf Windows zurückfalse.

is_other

Überprüft, ob es sich bei der referenzierten Datei um eine andere Datei handelt.

bool is_other() const;
bool is_other(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

truewenn die referenzierte Datei vorhanden ist, aber keine normale Datei, kein Verzeichnis oder eine symbolische Verknüpfung ist; andernfalls . false Entspricht dem Aufrufen filesystem::is_other(status())von .

is_regular_file

Überprüft, ob es sich bei der referenzierten Datei um eine normale Datei handelt.

bool is_regular_file() const;
bool is_regular_file(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

truewenn es sich bei der referenzierten Datei um eine normale Datei handelt; andernfalls . false Entspricht dem Aufrufen filesystem::is_regular_file(status())von .

is_socket

Überprüft, ob es sich bei der referenzierten Datei um einen Socket handelt.

bool is_socket() const;
bool is_socket(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

truewenn es sich bei der referenzierten Datei um einen Socket handelt; andernfalls . false Diese Funktion gibt immer auf Windows zurückfalse.

Überprüft, ob es sich bei der referenzierten Datei um eine symbolische Verknüpfung handelt.

bool is_symlink() const;
bool is_symlink(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

truewenn die referenzierte Datei ein symbolischer Link ist; andernfalls . false Entspricht dem Aufrufen filesystem::is_symlink(symlink_status())von .

Dateigröße

Ruft die Größe der referenzierten Datei in Bytes ab.

uintmax_t file_size() const;
uintmax_t file_size(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

Die Größe der referenzierten Datei in Byte, wie bei filesystem::file_size(path()). Verwendet zwischengespeicherte Daten, wenn sie verfügbar sind.

Ruft die Anzahl der endgültigen Verknüpfungen mit der referenzierten Datei ab.

uintmax_t hard_link_count() const;
uintmax_t hard_link_count(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

Die Anzahl harter Verknüpfungen mit der referenzierten Datei, als wäre dies wie bei filesystem::hard_link_count(path()). Verwendet zwischengespeicherte Daten, wenn sie verfügbar sind.

last_write_time

Ruft den Zeitpunkt der letzten Datenänderung der referenzierten Datei ab.

file_time_type last_write_time() const;
file_time_type last_write_time(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

Der Zeitpunkt der letzten Datenänderung der referenzierten Datei, als wäre es von filesystem::last_write_time(path()). Verwendet zwischengespeicherte Daten, wenn sie verfügbar sind.

status

Ruft den Status der referenzierten Datei ab, die auf symbolische Verknüpfungen folgt.

file_status status() const;
file_status status(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

Der Status der referenzierten Datei, als wäre es nach filesystem::status(path()). Verwendet zwischengespeicherte Daten, wenn sie verfügbar sind.

Ruft den Status der Referenzdatei ohne symbolische Verknüpfungen ab.

file_status symlink_status() const;
file_status symlink_status(std::error_code& ec) const noexcept;

Parameter

EG
Der Ausgabefehlercode für den Vorgang.

Zurückgegebener Wert

Der Symlink-Status der referenzierten Datei, als wäre es nach filesystem::symlink_status(path()). Verwendet zwischengespeicherte Daten, wenn sie verfügbar sind.

operator==

Überprüft, ob zwei directory_entry Objekte gleich sind.

bool operator==(const directory_entry& right) const noexcept;

Parameter

right
Der directory_entry zu vergleichende Wert.

Zurückgegebener Wert

Gibt path() == right.path() zurück.

operator<=>

Führt einen dreiseitigen Vergleich von zwei directory_entry Objekten aus.

std::strong_ordering operator<=>(const directory_entry& right) const noexcept; // C++20

Parameter

right
Der directory_entry zu vergleichende Wert.

Zurückgegebener Wert

Gibt path() <=> right.path() zurück.

Hinweise

Verfügbar in C++20 und höher. Der Compiler schreibt Vergleiche um, die diesen Operator verwendenoperator<, operator>operator<=oder operator>= verwenden. Es schreibt Vergleiche um, die für die Verwendung verwendet operator==werdenoperator!=.

operator!=

Überprüft, ob zwei directory_entry Objekte ungleich sind.

bool operator!=(const directory_entry& right) const noexcept; // C++17

Parameter

right
Der directory_entry zu vergleichende Wert.

Zurückgegebener Wert

Gibt !(*this == right) zurück.

Hinweise

In C++17 ist dieser Operator eine explizit deklarierte Memberfunktion. In C++20 und höher wird ein Ausdruck, der zum Verwenden operator==verwendet operator!= wird, neu geschrieben.

operator<

Überprüft, ob die directory_entry Sortierung vor einem anderen directory_entry.

bool operator<(const directory_entry& right) const noexcept; // C++17

Parameter

right
Der directory_entry zu vergleichende Wert.

Zurückgegebener Wert

Gibt path() < right.path() zurück.

Hinweise

In C++17 ist dieser Operator eine explizit deklarierte Memberfunktion. In C++20 und höher wird ein Ausdruck, der zum Verwenden operator<=>verwendet operator< wird, neu geschrieben.

operator<=

Überprüft, ob die directory_entry Sortierung vor oder gleich einem anderen directory_entryist.

bool operator<=(const directory_entry& right) const noexcept; // C++17

Parameter

right
Der directory_entry zu vergleichende Wert.

Zurückgegebener Wert

Gibt !(right < *this) zurück.

Hinweise

In C++17 ist dieser Operator eine explizit deklarierte Memberfunktion. In C++20 und höher wird ein Ausdruck, der zum Verwenden operator<=>verwendet operator<= wird, neu geschrieben.

operator>

Überprüft, ob die directory_entry Sortierung nach einem anderen directory_entry.

bool operator>(const directory_entry& right) const noexcept; // C++17

Parameter

right
Der directory_entry zu vergleichende Wert.

Zurückgegebener Wert

Gibt right < *this zurück.

Hinweise

In C++17 ist dieser Operator eine explizit deklarierte Memberfunktion. In C++20 und höher wird ein Ausdruck, der zum Verwenden operator<=>verwendet operator> wird, neu geschrieben.

operator>=

Überprüft, ob die directory_entry Sortierung nach oder gleich einer anderen directory_entrysortiert wird.

bool operator>=(const directory_entry& right) const noexcept; // C++17

Parameter

right
Der directory_entry zu vergleichende Wert.

Zurückgegebener Wert

Gibt !(*this < right) zurück.

Hinweise

In C++17 ist dieser Operator eine explizit deklarierte Memberfunktion. In C++20 und höher wird ein Ausdruck, der zum Verwenden operator<=>verwendet operator>= wird, neu geschrieben.

Siehe auch

Headerdateienreferenz
<filesystem>
Dateisystemnavigation (C++)