Espacios de nombres
Variantes
Acciones

std::filesystem::absolute

De cppreference.com
 
 
 
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.

Contenido

[editar] 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.

[editar] Valor de retorno

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

[editar] 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.

[editar] 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.

[editar] 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"

[editar] Véase también

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