Classe directory_entry

Descrive un oggetto restituito dereferenziando un directory_iterator oggetto o .recursive_directory_iterator Un directory_entry oggetto esegue il wrapping di e path , come ottimizzazione, può memorizzare nella cache gli attributi di file ottenuti durante l'iterazione di una directory.

Sintassi

class directory_entry;

Osservazioni:

Un oggetto archivia directory_entry un oggetto path. Come ottimizzazione, può anche memorizzare nella cache gli attributi e lo stato del file a cui fa riferimento il percorso. I dati memorizzati nella cache vengono popolati quando la voce viene creata da un iteratore di directory o quando si chiama refresh. Gli osservatori, ad file_sizeesempio , last_write_timestatus, e i vari is_* predicati restituiscono i dati memorizzati nella cache quando sono disponibili; in caso contrario, eseguono query sul file system.

Per altre informazioni ed esempi di codice, vedere File System Navigation (C++) (Esplorazione del file system (C++)).

Costruttori

Costruttore Descrizione
directory_entry Costruisce un oggetto directory_entry.

Funzioni membro

Funzione membro Descrizione
assign Sostituisce il percorso archiviato e aggiorna gli attributi memorizzati nella cache.
exists Controlla se la voce fa riferimento a un file esistente.
file_size Ottiene le dimensioni, in byte, del file a cui si fa riferimento.
hard_link_count Ottiene il numero di collegamenti reali al file a cui si fa riferimento.
is_block_file Controlla se il file a cui si fa riferimento è un file speciale a blocchi.
is_character_file Controlla se il file a cui si fa riferimento è un file speciale di caratteri.
is_directory Controlla se il file a cui si fa riferimento è una directory.
is_fifo Controlla se il file a cui si fa riferimento è una named pipe (FIFO).
is_other Controlla se il file a cui si fa riferimento è un altro file.
is_regular_file Controlla se il file a cui si fa riferimento è un file normale.
is_socket Controlla se il file a cui si fa riferimento è un socket.
is_symlink Controlla se il file a cui si fa riferimento è un collegamento simbolico.
last_write_time Ottiene l'ora dell'ultima modifica dei dati del file di riferimento.
path Restituisce il percorso archiviato.
refresh Aggiorna gli attributi del file memorizzati nella cache.
replace_filename Sostituisce il nome file del percorso archiviato e aggiorna gli attributi memorizzati nella cache.
status Ottiene lo stato del file a cui si fa riferimento, seguendo i collegamenti simbolici.
symlink_status Ottiene lo stato del file a cui si fa riferimento, senza i collegamenti simbolici seguenti.

Operatori

Operatore Descrizione
operator= Assegna all'oggetto directory_entry.
operator const path& Restituisce il percorso archiviato.
operator== Controlla se due directory_entry oggetti sono uguali.
operator<=> Esegue un confronto a tre vie di due directory_entry oggetti. (C++20)
operator!= Controlla se due directory_entry oggetti sono diversi. Membro esplicito in C++17; supportato tramite confronti riscritti in C++20 e versioni successive.
operator< Controlla se l'ordinamento directory_entry viene eseguito prima di un altro directory_entryoggetto . Membro esplicito in C++17; supportato tramite confronti riscritti in C++20 e versioni successive.
operator<= Controlla se l'ordinamento directory_entry viene eseguito prima o uguale a un altro directory_entryoggetto . Membro esplicito in C++17; supportato tramite confronti riscritti in C++20 e versioni successive.
operator> Controlla se l'ordinamento directory_entry viene eseguito dopo un altro directory_entryoggetto . Membro esplicito in C++17; supportato tramite confronti riscritti in C++20 e versioni successive.
operator>= Controlla se l'ordinamento directory_entry viene eseguito dopo o uguale a un altro directory_entryoggetto . Membro esplicito in C++17; supportato tramite confronti riscritti in C++20 e versioni successive.

Requisiti

Intestazione:<filesystem>

Spazio dei nomi:std::filesystem

directory_entry

Costruisce un oggetto 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();

Parametri

p
Percorso del file a cui fa riferimento la voce.

Ce
Codice di errore di output per l'operazione.

Osservazioni:

I costruttori predefiniti, copia e spostamento si comportano come previsto. Costruttori che accettano un path archivio p e quindi chiamano refresh per popolare gli attributi memorizzati nella cache. L'overload che accetta un error_code errore in ec invece di generare e cancella il percorso archiviato se l'aggiornamento non riesce.

operator=

Assegna all'oggetto directory_entry.

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

Parametri

right
Oggetto directory_entry da copiare o spostare in questo directory_entryoggetto .

Osservazioni:

Gli operatori di assegnazione predefiniti si comportano come previsto.

assign

Sostituisce il percorso archiviato e aggiorna gli attributi memorizzati nella cache.

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

Parametri

p
Nuovo percorso da archiviare.

Ce
Codice di errore di output per l'operazione.

Osservazioni:

Sostituisce il percorso archiviato con p, quindi chiama refresh per aggiornare gli attributi memorizzati nella cache. Overload che accetta un error_code errore in ec invece di generare.

replace_filename

Sostituisce il nome file del percorso archiviato e aggiorna gli attributi memorizzati nella cache.

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

Parametri

p
Nome file di sostituzione.

Ce
Codice di errore di output per l'operazione.

Osservazioni:

Sostituisce il componente filename del percorso archiviato con p, come se fosse path().replace_filename(p), quindi chiama refresh. Overload che accetta un error_code errore in ec invece di generare.

aggiornare

Aggiorna gli attributi del file memorizzati nella cache.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Osservazioni:

Legge gli attributi del file a cui fa riferimento il percorso archiviato e li memorizza nella cache in directory_entry. Chiamare refresh per aggiornare i dati memorizzati nella cache dopo la modifica del file di riferimento. Overload che accetta un error_code errore in ec invece di generare.

path

Restituisce il percorso archiviato.

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

operator const path&

Restituisce il percorso archiviato.

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

esiste

Controlla se la voce fa riferimento a un file esistente.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

true se il percorso archiviato fa riferimento a un file esistente; in caso contrario, false. Equivale a chiamare filesystem::exists(status()).

is_block_file

Controlla se il file a cui si fa riferimento è un file speciale a blocchi.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

true se il file a cui si fa riferimento è un file speciale a blocchi; in caso contrario, false. Questa funzione restituisce false sempre Windows.

is_character_file

Controlla se il file a cui si fa riferimento è un file speciale di caratteri.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

true se il file a cui si fa riferimento è un file speciale di caratteri; in caso contrario, false. Questa funzione restituisce false sempre Windows.

is_directory

Controlla se il file a cui si fa riferimento è una directory.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

true se il file a cui si fa riferimento è una directory; in caso contrario, false. Equivale a chiamare filesystem::is_directory(status()).

is_fifo

Controlla se il file a cui si fa riferimento è una named pipe (FIFO).

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

true se il file a cui si fa riferimento è un FIFO; in caso contrario, false. Questa funzione restituisce false sempre Windows.

is_other

Controlla se il file a cui si fa riferimento è un altro file.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

true se il file a cui si fa riferimento esiste ma non è un normale file, una directory o un collegamento simbolico; in caso contrario, false. Equivale a chiamare filesystem::is_other(status()).

is_regular_file

Controlla se il file a cui si fa riferimento è un file normale.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

true se il file a cui si fa riferimento è un file normale; in caso contrario, false. Equivale a chiamare filesystem::is_regular_file(status()).

is_socket

Controlla se il file a cui si fa riferimento è un socket.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

true se il file a cui si fa riferimento è un socket; in caso contrario, false. Questa funzione restituisce false sempre Windows.

Controlla se il file a cui si fa riferimento è un collegamento simbolico.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

true se il file a cui si fa riferimento è un collegamento simbolico; in caso contrario, false. Equivale a chiamare filesystem::is_symlink(symlink_status()).

file_size

Ottiene le dimensioni, in byte, del file a cui si fa riferimento.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

Dimensione, in byte, del file a cui si fa riferimento, come se fosse filesystem::file_size(path()). Usa i dati memorizzati nella cache quando sono disponibili.

Ottiene il numero di collegamenti reali al file a cui si fa riferimento.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

Numero di collegamenti rigidi al file di riferimento, come se fosse filesystem::hard_link_count(path()). Usa i dati memorizzati nella cache quando sono disponibili.

last_write_time

Ottiene l'ora dell'ultima modifica dei dati del file di riferimento.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

Ora dell'ultima modifica dei dati del file di riferimento, come se fosse filesystem::last_write_time(path()). Usa i dati memorizzati nella cache quando sono disponibili.

stato

Ottiene lo stato del file a cui si fa riferimento, seguendo i collegamenti simbolici.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

Stato del file a cui si fa riferimento, come se fosse filesystem::status(path()). Usa i dati memorizzati nella cache quando sono disponibili.

Ottiene lo stato del file a cui si fa riferimento, senza i collegamenti simbolici seguenti.

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

Parametri

Ce
Codice di errore di output per l'operazione.

Valore restituito

Stato del collegamento simbolico del file a cui si fa riferimento, come se fosse filesystem::symlink_status(path()). Usa i dati memorizzati nella cache quando sono disponibili.

operator==

Controlla se due directory_entry oggetti sono uguali.

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

Parametri

right
Oggetto directory_entry da confrontare.

Valore restituito

Restituisce path() == right.path().

operator<=>

Esegue un confronto a tre vie di due directory_entry oggetti.

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

Parametri

right
Oggetto directory_entry da confrontare.

Valore restituito

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

Osservazioni:

Disponibile in C++20 e versioni successive. Il compilatore riscrive i confronti che usano operator<, operator<=, operator>o operator>= per usare questo operatore. Riscrive i confronti che usano operator!= per usare operator==.

operator!=

Controlla se due directory_entry oggetti sono diversi.

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

Parametri

right
Oggetto directory_entry da confrontare.

Valore restituito

Restituisce !(*this == right).

Osservazioni:

In C++17 questo operatore è una funzione membro dichiarata in modo esplicito. In C++20 e versioni successive, un'espressione che usa operator!= viene riscritta per usare operator==.

operator<

Controlla se l'ordinamento directory_entry viene eseguito prima di un altro directory_entryoggetto .

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

Parametri

right
Oggetto directory_entry da confrontare.

Valore restituito

Restituisce path() < right.path().

Osservazioni:

In C++17 questo operatore è una funzione membro dichiarata in modo esplicito. In C++20 e versioni successive, un'espressione che usa operator< viene riscritta per usare operator<=>.

operator<=

Controlla se l'ordinamento directory_entry viene eseguito prima o uguale a un altro directory_entryoggetto .

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

Parametri

right
Oggetto directory_entry da confrontare.

Valore restituito

Restituisce !(right < *this).

Osservazioni:

In C++17 questo operatore è una funzione membro dichiarata in modo esplicito. In C++20 e versioni successive, un'espressione che usa operator<= viene riscritta per usare operator<=>.

operator>

Controlla se l'ordinamento directory_entry viene eseguito dopo un altro directory_entryoggetto .

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

Parametri

right
Oggetto directory_entry da confrontare.

Valore restituito

Restituisce right < *this.

Osservazioni:

In C++17 questo operatore è una funzione membro dichiarata in modo esplicito. In C++20 e versioni successive, un'espressione che usa operator> viene riscritta per usare operator<=>.

operator>=

Controlla se l'ordinamento directory_entry viene eseguito dopo o uguale a un altro directory_entryoggetto .

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

Parametri

right
Oggetto directory_entry da confrontare.

Valore restituito

Restituisce !(*this < right).

Osservazioni:

In C++17 questo operatore è una funzione membro dichiarata in modo esplicito. In C++20 e versioni successive, un'espressione che usa operator>= viene riscritta per usare operator<=>.

Vedi anche

Riferimento file di intestazione
<filesystem>
Navigazione nel file system (C++)