Namespaces
Variants

std::filesystem::directory_entry:: exists

From cppreference.net
bool exists ( ) const ;
(1) (depuis C++17)
bool exists ( std:: error_code & ec ) const noexcept ;
(2) (depuis C++17)

Vérifie si l'objet pointé existe. Retourne effectivement :

1) std:: filesystem :: exists ( status ( ) ) ,
2) std:: filesystem :: exists ( status ( ec ) ) .

Notez que status() suit les liens symboliques vers leurs cibles.

Table des matières

Paramètres

ec - paramètre de sortie pour le rapport d'erreur dans la surcharge non-lançante

Valeur de retour

true si l'objet du système de fichiers référencé existe.

Exceptions

Toute surcharge non marquée noexcept peut lever std::bad_alloc si l'allocation de mémoire échoue.

1) Lance std::filesystem::filesystem_error en cas d'erreurs de l'API système sous-jacente, construit avec p comme premier argument de chemin et le code d'erreur du système comme argument de code d'erreur.
2) Définit un paramètre std:: error_code & au code d'erreur de l'API du système d'exploitation si un appel d'API du système d'exploitation échoue, et exécute ec. clear ( ) si aucune erreur ne survient.

Exemple

#include <filesystem>
#include <iostream>
int main()
{
    for (auto const str:
    {
        "/usr/bin/cat",
        "/usr/bin/mouse",
        "/usr/bin/python",
        "/usr/bin/bison",
        "/usr/bin/yacc",
        "/usr/bin/c++",
    })
    {
        std::filesystem::directory_entry entry{str};
        std::cout << "directory entry " << entry
                  << (entry.exists() ? " exists\n" : " does not exist\n");
    }
}

Sortie possible :

// Output on a POSIX system:
directory entry "/usr/bin/cat" exist
directory entry "/usr/bin/mouse" does not exist
directory entry "/usr/bin/python" exists
directory entry "/usr/bin/bison" exists
directory entry "/usr/bin/yacc" does not exist
directory entry "/usr/bin/c++" exists

Voir aussi

(C++17)
vérifie si le chemin d'accès fait référence à un objet existant du système de fichiers
(fonction)