directory_entry klass

Beskriver ett objekt som returneras genom att avreferera en directory_iterator eller en recursive_directory_iterator. A directory_entry omsluter en path och kan som optimering cachelagra filattribut som hämtas när en katalog itereras.

Syntax

class directory_entry;

Kommentarer

Ett directory_entry objekt lagrar en path. Som en optimering kan den också cachelagrar attributen och statusen för filen som sökvägen refererar till. Cachelagrade data fylls i när posten skapas av en katalog-iterator eller när du anropar refresh. Observatörer som file_size, last_write_time, statusoch de olika is_* predikaten returnerar cachelagrade data när de är tillgängliga. Annars frågar de filsystemet.

Mer information och kodexempel finns i Filsystemnavigering (C++).

Constructors

Constructor Beskrivning
directory_entry Konstruerar en directory_entry.

Medlemsfunktioner

Medlemsfunktion Beskrivning
assign Ersätter den lagrade sökvägen och uppdaterar de cachelagrade attributen.
exists Kontrollerar om posten refererar till en befintlig fil.
file_size Hämtar storleken, i byte, på den refererade filen.
hard_link_count Hämtar antalet hårda länkar till den refererade filen.
is_block_file Kontrollerar om den refererade filen är en särskild blockfil.
is_character_file Kontrollerar om den refererade filen är en specialfil med tecken.
is_directory Kontrollerar om den refererade filen är en katalog.
is_fifo Kontrollerar om den refererade filen är en namngiven pipe (FIFO).
is_other Kontrollerar om den refererade filen är en annan fil.
is_regular_file Kontrollerar om den refererade filen är en vanlig fil.
is_socket Kontrollerar om den refererade filen är en socket.
is_symlink Kontrollerar om den refererade filen är en symbolisk länk.
last_write_time Hämtar tiden för den senaste dataändringen av den refererade filen.
path Returnerar den lagrade sökvägen.
refresh Uppdaterar de cachelagrade filattributen.
replace_filename Ersätter filnamnet för den lagrade sökvägen och uppdaterar de cachelagrade attributen.
status Hämtar status för den refererade filen genom att följa symboliska länkar.
symlink_status Hämtar status för den refererade filen utan att följa symboliska länkar.

Operators

Operator Beskrivning
operator= Tilldelar till directory_entry.
operator const path& Returnerar den lagrade sökvägen.
operator== Kontrollerar om två directory_entry objekt är lika med.
operator<=> Utför en trevägsjämförelse av två directory_entry objekt. (C++20)
operator!= Kontrollerar om två directory_entry objekt är ojämlika. En explicit medlem i C++17; stöds genom omskrivna jämförelser i C++20 och senare.
operator< Kontrollerar om sorteringarna directory_entry före en annan directory_entry. En explicit medlem i C++17; stöds genom omskrivna jämförelser i C++20 och senare.
operator<= Kontrollerar om sortering före directory_entry eller lika med en annan directory_entry. En explicit medlem i C++17; stöds genom omskrivna jämförelser i C++20 och senare.
operator> Kontrollerar om sorterna directory_entry efter en annan directory_entry. En explicit medlem i C++17; stöds genom omskrivna jämförelser i C++20 och senare.
operator>= Kontrollerar om sortering directory_entry efter eller lika med en annan directory_entry. En explicit medlem i C++17; stöds genom omskrivna jämförelser i C++20 och senare.

Requirements

rubrik:<filesystem>

Namnområde:std::filesystem

directory_entry

Konstruerar en 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();

Parameters

p
Sökvägen till filen som posten refererar till.

ec
Utdatafelkoden för åtgärden.

Kommentarer

Standardkonstruktorerna, kopiera och flytta fungerar som förväntat. Konstruktorerna som tar ett path lager p och sedan anropar refresh för att fylla i de cachelagrade attributen. Överlagringen som tar ett error_code rapportfel i ec i stället för att kasta och rensar den lagrade sökvägen om uppdateringen misslyckas.

operator=

Tilldelar till directory_entry.

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

Parameters

rätt
Kopiera directory_entry eller flytta till den här directory_entry.

Kommentarer

De förvalda tilldelningsoperatorerna fungerar som förväntat.

assign

Ersätter den lagrade sökvägen och uppdaterar de cachelagrade attributen.

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

Parameters

p
Den nya sökvägen att lagra.

ec
Utdatafelkoden för åtgärden.

Kommentarer

Ersätter den lagrade sökvägen med p och anropar refresh sedan för att uppdatera de cachelagrade attributen. Överlagringen som tar ett error_code rapportfel i ec i stället för att utlösa.

replace_filename

Ersätter filnamnet för den lagrade sökvägen och uppdaterar de cachelagrade attributen.

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

Parameters

p
Ersättningsfilnamnet.

ec
Utdatafelkoden för åtgärden.

Kommentarer

Ersätter filnamnskomponenten i den lagrade sökvägen med p, som med path().replace_filename(p), och anropar refreshsedan . Överlagringen som tar ett error_code rapportfel i ec i stället för att utlösa.

uppdatera

Uppdaterar de cachelagrade filattributen.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Kommentarer

Läser attributen för filen som den lagrade sökvägen refererar till och cachelagrar dem i directory_entry. Anropa refresh för att uppdatera cachelagrade data efter att den refererade filen har ändrats. Överlagringen som tar ett error_code rapportfel i ec i stället för att utlösa.

path

Returnerar den lagrade sökvägen.

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

operator const path &

Returnerar den lagrade sökvägen.

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

finns

Kontrollerar om posten refererar till en befintlig fil.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

trueom den lagrade sökvägen refererar till en befintlig fil; annars . false Motsvarar att anropa filesystem::exists(status()).

is_block_file

Kontrollerar om den refererade filen är en särskild blockfil.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

trueom den refererade filen är en särskild blockfil; annars . false Den här funktionen returnerar false alltid på Windows.

is_character_file

Kontrollerar om den refererade filen är en specialfil med tecken.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

trueom den refererade filen är en specialfil för tecken; annars . false Den här funktionen returnerar false alltid på Windows.

is_directory

Kontrollerar om den refererade filen är en katalog.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

trueom den refererade filen är en katalog; annars . false Motsvarar att anropa filesystem::is_directory(status()).

is_fifo

Kontrollerar om den refererade filen är en namngiven pipe (FIFO).

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

trueom den refererade filen är en FIFO; annars . false Den här funktionen returnerar false alltid på Windows.

is_other

Kontrollerar om den refererade filen är en annan fil.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

trueom den refererade filen finns men inte är en vanlig fil, katalog eller symbolisk länk; annars . false Motsvarar att anropa filesystem::is_other(status()).

is_regular_file

Kontrollerar om den refererade filen är en vanlig fil.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

trueom den refererade filen är en vanlig fil; annars . false Motsvarar att anropa filesystem::is_regular_file(status()).

is_socket

Kontrollerar om den refererade filen är en socket.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

trueom den refererade filen är en socket; annars . false Den här funktionen returnerar false alltid på Windows.

Kontrollerar om den refererade filen är en symbolisk länk.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

trueom den refererade filen är en symbolisk länk; annars . false Motsvarar att anropa filesystem::is_symlink(symlink_status()).

file_size

Hämtar storleken, i byte, på den refererade filen.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

Storleken, i byte, på den refererade filen, som om av filesystem::file_size(path()). Använder cachelagrade data när de är tillgängliga.

Hämtar antalet hårda länkar till den refererade filen.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

Antalet hårda länkar till den refererade filen, som om av filesystem::hard_link_count(path()). Använder cachelagrade data när de är tillgängliga.

last_write_time

Hämtar tiden för den senaste dataändringen av den refererade filen.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

Tiden för den senaste dataändringen av den refererade filen, som om av filesystem::last_write_time(path()). Använder cachelagrade data när de är tillgängliga.

status

Hämtar status för den refererade filen genom att följa symboliska länkar.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

Status för den refererade filen, som om av filesystem::status(path()). Använder cachelagrade data när de är tillgängliga.

Hämtar status för den refererade filen utan att följa symboliska länkar.

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

Parameters

ec
Utdatafelkoden för åtgärden.

Returvärde

Symlink-statusen för den refererade filen, som med filesystem::symlink_status(path()). Använder cachelagrade data när de är tillgängliga.

operator==

Kontrollerar om två directory_entry objekt är lika med.

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

Parameters

rätt
Att directory_entry jämföra med.

Returvärde

Returnerar path() == right.path().

operator<=>

Utför en trevägsjämförelse av två directory_entry objekt.

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

Parameters

rätt
Att directory_entry jämföra med.

Returvärde

Returnerar path() <=> right.path().

Kommentarer

Finns i C++20 och senare. Kompilatorn skriver om jämförelser som använder operator<, operator<=, operator>eller operator>= för att använda den här operatorn. Den skriver om jämförelser som använder operator!= för att använda operator==.

operator!=

Kontrollerar om två directory_entry objekt är ojämlika.

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

Parameters

rätt
Att directory_entry jämföra med.

Returvärde

Returnerar !(*this == right).

Kommentarer

I C++17 är den här operatorn en explicit deklarerad medlemsfunktion. I C++20 och senare skrivs ett uttryck som använder operator!= om för att använda operator==.

operator<

Kontrollerar om sorteringarna directory_entry före en annan directory_entry.

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

Parameters

rätt
Att directory_entry jämföra med.

Returvärde

Returnerar path() < right.path().

Kommentarer

I C++17 är den här operatorn en explicit deklarerad medlemsfunktion. I C++20 och senare skrivs ett uttryck som använder operator< om för att använda operator<=>.

operator<=

Kontrollerar om sortering före directory_entry eller lika med en annan directory_entry.

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

Parameters

rätt
Att directory_entry jämföra med.

Returvärde

Returnerar !(right < *this).

Kommentarer

I C++17 är den här operatorn en explicit deklarerad medlemsfunktion. I C++20 och senare skrivs ett uttryck som använder operator<= om för att använda operator<=>.

operator>

Kontrollerar om sorterna directory_entry efter en annan directory_entry.

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

Parameters

rätt
Att directory_entry jämföra med.

Returvärde

Returnerar right < *this.

Kommentarer

I C++17 är den här operatorn en explicit deklarerad medlemsfunktion. I C++20 och senare skrivs ett uttryck som använder operator> om för att använda operator<=>.

operator>=

Kontrollerar om sortering directory_entry efter eller lika med en annan directory_entry.

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

Parameters

rätt
Att directory_entry jämföra med.

Returvärde

Returnerar !(*this < right).

Kommentarer

I C++17 är den här operatorn en explicit deklarerad medlemsfunktion. I C++20 och senare skrivs ett uttryck som använder operator>= om för att använda operator<=>.

Se även

referens för huvudfiler
<filesystem>
Filsystemnavigering (C++)