Namespaces
Variants

std::filesystem::directory_entry:: exists

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

Comprueba si el objeto apuntado existe. Efectivamente retorna:

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

Tenga en cuenta que status() sigue los enlaces simbólicos hacia sus destinos.

Contenidos

Parámetros

ec - parámetro de salida para reporte de errores en la sobrecarga que no lanza excepciones

Valor de retorno

true si el objeto del sistema de archivos referenciado existe.

Excepciones

Cualquier sobrecarga no marcada como noexcept puede lanzar std::bad_alloc si la asignación de memoria falla.

1) Lanza std::filesystem::filesystem_error en errores de la API del sistema operativo subyacente, construido con p como primer argumento de ruta y el código de error del sistema operativo como argumento de código de error.
2) Establece un parámetro std:: error_code & al código de error de la API del sistema operativo si una llamada a la API del sistema operativo falla, y ejecuta ec. clear ( ) si no ocurren errores.

Ejemplo

#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");
    }
}

Salida posible:

// 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

Véase también

(C++17)
verifica si la ruta hace referencia a un objeto del sistema de archivos existente
(función)