Namespaces
Variants

std::filesystem:: absolute

From cppreference.net
Definido en el encabezado <filesystem>
path absolute ( const std:: filesystem :: path & p ) ;
(1) (desde C++17)
path absolute ( const std:: filesystem :: path & p, std:: error_code & ec ) ;
(2) (desde C++17)

Devuelve una ruta que referencia la misma ubicación del sistema de archivos que p , para la cual filesystem::path::is_absolute() es true .

2) Esta sobrecarga que no lanza excepciones devuelve un path construido por defecto si ocurre un error.

Contenidos

Parámetros

p - ruta a convertir a forma absoluta
ec - parámetro de salida para reporte de errores en la sobrecarga no lanzadora

Valor de retorno

Devuelve una ruta absoluta (aunque no necesariamente canónica) que referencia el mismo archivo que p .

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 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 SO falla, y ejecuta ec. clear ( ) si no ocurren errores.

Notas

Se recomienda a las implementaciones que no consideren p inexistente como un error.

Para sistemas operativos basados en POSIX, std :: filesystem :: absolute ( p ) es equivalente a std:: filesystem :: current_path ( ) / p excepto cuando p es la ruta vacía.

Para Windows, std::filesystem::absolute puede implementarse como una llamada a GetFullPathNameW .

Ejemplo

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    std::filesystem::path p = "foo.c";
    std::cout << "Current path is " << std::filesystem::current_path() << '\n';
    std::cout << "Absolute path for " << p << " is " << fs::absolute(p) << '\n';
}

Salida posible:

Current path is "/tmp/1666297965.0051296"
Absolute path for "foo.c" is "/tmp/1666297965.0051296/foo.c"

Véase también

compone una ruta canónica
(función)
compone una ruta relativa
(función)