std::filesystem::absolute
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
(C++17) |
Compone una ruta de acceso canónica. (función) |
(C++17) |
Compone una ruta de acceso relativa. (función) |