Espacios de nombres
Variantes
Acciones

std::filesystem::absolute

De cppreference.com
 
 
 
Definido en el archivo de encabezado <filesystem>
path absolute(conststd::filesystem::path& p);
path absolute(conststd::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]
close