Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
is_symlink
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.
hard_link_count
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.
symlink_status
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++)