Classe directory_entry

Décrit un objet retourné par le déreferencing d’un directory_iterator ou d’un recursive_directory_iterator. Un directory_entry wrappes a path et, en tant qu’optimisation, peut mettre en cache des attributs de fichier obtenus lors de l’itération d’un répertoire.

Syntaxe

class directory_entry;

Notes

Un directory_entry objet stocke un path. En guise d’optimisation, il peut également mettre en cache les attributs et l’état du fichier auquel le chemin d’accès fait référence. Les données mises en cache sont remplies lorsque l’entrée est créée par un itérateur de répertoire, ou lorsque vous appelez refresh. Les observateurs tels que file_size, , last_write_timestatuset les différents is_* prédicats retournent les données mises en cache lorsqu’ils sont disponibles ; sinon, ils interrogent le système de fichiers.

Pour plus d’informations et pour obtenir des exemples de code, consultez Navigation dans le système de fichiers (C++).

Constructeurs

Constructeur Description
directory_entry Construit un objet directory_entry.

Fonctions Membre

Fonction membre Description
assign Remplace le chemin stocké et actualise les attributs mis en cache.
exists Vérifie si l’entrée fait référence à un fichier existant.
file_size Obtient la taille, en octets, du fichier référencé.
hard_link_count Obtient le nombre de liens durs vers le fichier référencé.
is_block_file Vérifie si le fichier référencé est un fichier spécial de bloc.
is_character_file Vérifie si le fichier référencé est un fichier spécial caractère.
is_directory Vérifie si le fichier référencé est un répertoire.
is_fifo Vérifie si le fichier référencé est un canal nommé (FIFO).
is_other Vérifie si le fichier référencé est un autre fichier.
is_regular_file Vérifie si le fichier référencé est un fichier normal.
is_socket Vérifie si le fichier référencé est un socket.
is_symlink Vérifie si le fichier référencé est un lien symbolique.
last_write_time Obtient l’heure de la dernière modification des données du fichier référencé.
path Retourne le chemin d’accès stocké.
refresh Actualise les attributs de fichier mis en cache.
replace_filename Remplace le nom de fichier du chemin stocké et actualise les attributs mis en cache.
status Obtient l’état du fichier référencé, en suivant les liens symboliques.
symlink_status Obtient l’état du fichier référencé, sans suivre les liens symboliques.

Opérateurs

Opérateur Description
operator= Affecte à l’objet directory_entry.
operator const path& Retourne le chemin d’accès stocké.
operator== Vérifie si deux directory_entry objets sont égaux.
operator<=> Effectue une comparaison tridirectionnel de deux directory_entry objets. (C++20)
operator!= Vérifie si deux directory_entry objets sont inégaux. Membre explicite en C++17 ; prise en charge par le biais de comparaisons réécrites en C++20 et versions ultérieures.
operator< Vérifie si les directory_entry tris avant un autre directory_entry. Membre explicite en C++17 ; prise en charge par le biais de comparaisons réécrites en C++20 et versions ultérieures.
operator<= Vérifie si les directory_entry tris avant ou égal à un autre directory_entry. Membre explicite en C++17 ; prise en charge par le biais de comparaisons réécrites en C++20 et versions ultérieures.
operator> Vérifie si les directory_entry tris après un autre directory_entry. Membre explicite en C++17 ; prise en charge par le biais de comparaisons réécrites en C++20 et versions ultérieures.
operator>= Vérifie si les directory_entry tris après ou égal à un autre directory_entry. Membre explicite en C++17 ; prise en charge par le biais de comparaisons réécrites en C++20 et versions ultérieures.

Spécifications

En-tête :<filesystem>

Noms:std::filesystem

directory_entry

Construit un objet 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();

Paramètres

p
Chemin d’accès au fichier auquel l’entrée fait référence.

Ce
Code d’erreur de sortie de l’opération.

Notes

Les constructeurs par défaut, de copie et de déplacement se comportent comme prévu. Constructeurs qui prennent un path magasin p , puis appellent refresh pour remplir les attributs mis en cache. La surcharge qui génère des error_code erreurs dans ec au lieu de lever et efface le chemin stocké en cas d’échec de l’actualisation.

opérateur =

Affecte à l’objet directory_entry.

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

Paramètres

right
À directory_entry copier ou à déplacer dans ce directory_entryfichier .

Notes

Les opérateurs d’affectation par défaut se comportent comme prévu.

attribuer

Remplace le chemin stocké et actualise les attributs mis en cache.

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

Paramètres

p
Nouveau chemin d’accès au magasin.

Ce
Code d’erreur de sortie de l’opération.

Notes

Remplace le chemin stocké par p, puis appelle refresh pour mettre à jour les attributs mis en cache. Surcharge qui prend un rapport d’erreurs error_code dans ec au lieu de lever.

replace_filename

Remplace le nom de fichier du chemin stocké et actualise les attributs mis en cache.

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

Paramètres

p
Nom de fichier de remplacement.

Ce
Code d’erreur de sortie de l’opération.

Notes

Remplace le composant de nom de fichier du chemin d’accès stocké par p, comme si c’était le path().replace_filename(p)cas, puis appelle refresh. Surcharge qui prend un rapport d’erreurs error_code dans ec au lieu de lever.

actualisation

Actualise les attributs de fichier mis en cache.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Notes

Lit les attributs du fichier auquel le chemin stocké fait référence et les met en cache dans le directory_entryfichier . Appelez refresh pour mettre à jour les données mises en cache après la modification du fichier référencé. Surcharge qui prend un rapport d’erreurs error_code dans ec au lieu de lever.

path

Retourne le chemin d’accès stocké.

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

opérateur const path&

Retourne le chemin d’accès stocké.

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

Existe

Vérifie si l’entrée fait référence à un fichier existant.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

true si le chemin stocké fait référence à un fichier existant ; sinon, false. Équivalent à l’appel filesystem::exists(status()).

is_block_file

Vérifie si le fichier référencé est un fichier spécial de bloc.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

true si le fichier référencé est un fichier spécial de bloc ; sinon, false. Cette fonction retourne false toujours sur Windows.

is_character_file

Vérifie si le fichier référencé est un fichier spécial caractère.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

true si le fichier référencé est un fichier spécial caractère ; sinon, false. Cette fonction retourne false toujours sur Windows.

is_directory

Vérifie si le fichier référencé est un répertoire.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

true si le fichier référencé est un répertoire ; sinon, false. Équivalent à l’appel filesystem::is_directory(status()).

is_fifo

Vérifie si le fichier référencé est un canal nommé (FIFO).

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

true si le fichier référencé est un FIFO ; sinon, false. Cette fonction retourne false toujours sur Windows.

is_other

Vérifie si le fichier référencé est un autre fichier.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

true si le fichier référencé existe mais n’est pas un fichier, un répertoire ou un lien symbolique normal ; sinon, false. Équivalent à l’appel filesystem::is_other(status()).

is_regular_file

Vérifie si le fichier référencé est un fichier normal.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

true si le fichier référencé est un fichier normal ; sinon, false. Équivalent à l’appel filesystem::is_regular_file(status()).

is_socket

Vérifie si le fichier référencé est un socket.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

true si le fichier référencé est un socket ; sinon, false. Cette fonction retourne false toujours sur Windows.

Vérifie si le fichier référencé est un lien symbolique.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

true si le fichier référencé est un lien symbolique ; sinon, false. Équivalent à l’appel filesystem::is_symlink(symlink_status()).

taille_du_fichier

Obtient la taille, en octets, du fichier référencé.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

Taille, en octets, du fichier référencé, comme si par filesystem::file_size(path()). Utilise des données mises en cache lorsqu’elles sont disponibles.

Obtient le nombre de liens durs vers le fichier référencé.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

Nombre de liens durs vers le fichier référencé, comme si c’était le filesystem::hard_link_count(path())cas. Utilise des données mises en cache lorsqu’elles sont disponibles.

last_write_time

Obtient l’heure de la dernière modification des données du fichier référencé.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

Heure de la dernière modification des données du fichier référencé, comme si par filesystem::last_write_time(path()). Utilise des données mises en cache lorsqu’elles sont disponibles.

statut

Obtient l’état du fichier référencé, en suivant les liens symboliques.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

État du fichier référencé, comme si c’était le cas.filesystem::status(path()) Utilise des données mises en cache lorsqu’elles sont disponibles.

Obtient l’état du fichier référencé, sans suivre les liens symboliques.

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

Paramètres

Ce
Code d’erreur de sortie de l’opération.

Valeur renvoyée

État de lien symbolique du fichier référencé, comme si par filesystem::symlink_status(path()). Utilise des données mises en cache lorsqu’elles sont disponibles.

operator==

Vérifie si deux directory_entry objets sont égaux.

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

Paramètres

right
À directory_entry comparer.

Valeur renvoyée

Retourne path() == right.path().

operator<=>

Effectue une comparaison tridirectionnel de deux directory_entry objets.

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

Paramètres

right
À directory_entry comparer.

Valeur renvoyée

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

Notes

Disponible en C++20 et versions ultérieures. Le compilateur réécrit les comparaisons qui utilisent operator<, operator<=ou operator>operator>= pour utiliser cet opérateur. Il réécrit les comparaisons qui utilisent operator!= pour utiliser operator==.

operator!=

Vérifie si deux directory_entry objets sont inégaux.

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

Paramètres

right
À directory_entry comparer.

Valeur renvoyée

Retourne !(*this == right).

Notes

En C++17, cet opérateur est une fonction membre déclarée explicitement. En C++20 et versions ultérieures, une expression qui est réécrite operator!= pour l’utiliser operator==.

operator<

Vérifie si les directory_entry tris avant un autre directory_entry.

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

Paramètres

right
À directory_entry comparer.

Valeur renvoyée

Retourne path() < right.path().

Notes

En C++17, cet opérateur est une fonction membre déclarée explicitement. En C++20 et versions ultérieures, une expression qui est réécrite operator< pour l’utiliser operator<=>.

operator<=

Vérifie si les directory_entry tris avant ou égal à un autre directory_entry.

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

Paramètres

right
À directory_entry comparer.

Valeur renvoyée

Retourne !(right < *this).

Notes

En C++17, cet opérateur est une fonction membre déclarée explicitement. En C++20 et versions ultérieures, une expression qui est réécrite operator<= pour l’utiliser operator<=>.

operator>

Vérifie si les directory_entry tris après un autre directory_entry.

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

Paramètres

right
À directory_entry comparer.

Valeur renvoyée

Retourne right < *this.

Notes

En C++17, cet opérateur est une fonction membre déclarée explicitement. En C++20 et versions ultérieures, une expression qui est réécrite operator> pour l’utiliser operator<=>.

operator>=

Vérifie si les directory_entry tris après ou égal à un autre directory_entry.

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

Paramètres

right
À directory_entry comparer.

Valeur renvoyée

Retourne !(*this < right).

Notes

En C++17, cet opérateur est une fonction membre déclarée explicitement. En C++20 et versions ultérieures, une expression qui est réécrite operator>= pour l’utiliser operator<=>.

Voir aussi

Informations de référence sur les fichiers d’en-tête
<filesystem>
Navigation dans le système de fichiers (C++)