Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Classe
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.
is_symlink
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.
hard_link_count
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.
symlink_status
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++)