std::filesystem:: exists
|
Défini dans l'en-tête
<filesystem>
|
||
|
bool
exists
(
std::
filesystem
::
file_status
s
)
noexcept
;
|
(1) | (depuis C++17) |
|
bool
exists
(
const
std::
filesystem
::
path
&
p
)
;
|
(2) | (depuis C++17) |
|
bool
exists
(
const
std::
filesystem
::
path
&
p,
std::
error_code
&
ec
)
noexcept
;
|
(3) | (depuis C++17) |
Vérifie si le statut de fichier ou le chemin donné correspond à un fichier ou répertoire existant.
Table des matières |
Paramètres
| s | - | statut du fichier à vérifier |
| p | - | chemin à examiner |
| ec | - | paramètre de sortie pour le rapport d'erreur dans la surcharge non-lançante |
Valeur de retour
true si le chemin ou l'état de fichier donné correspond à un fichier ou répertoire existant, false dans le cas contraire.
Exceptions
Toute surcharge non marquée
noexcept
peut lever
std::bad_alloc
si l'allocation de mémoire échoue.
Aucune exception du système de fichiers n'est levée si l'objet n'existe pas (utilisez la valeur de retour).
Notes
Les informations fournies par cette fonction sont généralement également disponibles comme sous-produit de l'itération de répertoire. Pendant l'itération de répertoire, appeler exists ( * iterator ) est moins efficace que exists ( iterator - > status ( ) ) .
Exemple
#include <cstdint> #include <filesystem> #include <fstream> #include <iostream> namespace fs = std::filesystem; void demo_exists(const fs::path& p, fs::file_status s = fs::file_status{}) { std::cout << p; if (fs::status_known(s) ? fs::exists(s) : fs::exists(p)) std::cout << " existe\n"; else std::cout << " n'existe pas\n"; } int main() { const fs::path sandbox{"sandbox"}; fs::create_directory(sandbox); std::ofstream{sandbox/"file"}; // créer un fichier régulier fs::create_symlink("non-existing", sandbox/"symlink"); demo_exists(sandbox); for (const auto& entry : fs::directory_iterator(sandbox)) demo_exists(entry, entry.status()); // utiliser le statut mis en cache de l'entrée de répertoire fs::remove_all(sandbox); }
Sortie :
"sandbox" existe "sandbox/symlink" n'existe pas "sandbox/file" existe
Voir aussi
|
(C++17)
(C++17)
|
détermine les attributs de fichier
détermine les attributs de fichier en vérifiant la cible du lien symbolique (fonction) |
|
(C++17)
|
représente le type de fichier et les permissions
(classe) |
|
vérifie si l'entrée de répertoire fait référence à un objet de système de fichiers existant
(fonction membre publique de
std::filesystem::directory_entry
)
|