Espacios de nombres
Variantes

std::filesystem::absolute

De cppreference.com
 
 
 
<tbody> </tbody>
Definido en el archivo de encabezado <filesystem>
path absolute(const std::filesystem::path& p); path absolute(const std::filesystem::path& p, std::error_code& ec);
(desde C++17)

Devuelve una ruta de acceso que hace referencia a la misma ubicación del sistema de archivos que p, para la que filesystem::is_absolute() es true. La sobrecarga que no lanza excepciones devuelve la ruta construida por defecto si ocurre un error.

Parámetros

p - La ruta de acceso a convertir a una forma absoluta.
ec - El parámetro de salida para informe de errores en la sobrecarga que no lanza excepciones.

Valor de retorno

Devuelve un nombre de ruta de acceso absoluta (aunque no necesariamente canónica) que hace referencia al mismo archivo que p.

Excepciones

La sobrecarga que no toma un parámetro std::error_code& lanza filesystem::filesystem_error en los errores de la API del sistema operativo subyacente, construido con p como el primer argumento de la ruta de acceso y el código de error del sistema operativo como el argumento del código de error. La sobrecarga que toma un parámetro std::error_code& lo establece en el 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. Cualquier sobrecarga que no está marcada con noexcept puede lanzar std::bad_alloc si la asignación de memoria falla.

Notas

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

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

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

Ejemplo

#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
    std::filesystem::path p = "foo.c";
    std::cout << "La ruta de acceso actual es " << fs::current_path() << '\n';
    std::cout << "La ruta de acceso absoluta para " << p << " es " 
              << std::filesystem::absolute(p) << '\n';
}

Posible salida:

La ruta de acceso actual es "/tmp/1622355667.5363104"
La ruta de acceso absoluta para "foo.c" es "/tmp/1622355667.5363104/foo.c"

Véase también

Compone una ruta de acceso canónica.
(función) [editar]
Compone una ruta de acceso relativa.
(función) [editar]