Espacios de nombres
Variantes
Acciones

std::filesystem::current_path

De cppreference.com
 
 
 
Definido en el archivo de encabezado <filesystem>
path current_path();
(1) (desde C++17)
path current_path( std::error_code& ec );
(2) (desde C++17)
void current_path( const std::filesystem::path& p );
(3) (desde C++17)
void current_path( const std::filesystem::path& p,
                   std::error_code& ec ) noexcept;
(4) (desde C++17)

Devuelve o cambia la ruta de acceso actual.

1-2) Devuelve la ruta absoluta del directorio de trabajo actual, obtenida como si fuera (en formato nativo) por getcwd de POSIX. (2) devuelve path() si ocurre un error.
3-4) Cambia el directorio de trabajo actual a p, como si fuera por chdir de POSIX.

Contenido

[editar] Parámetros

p - La ruta de acceso a la que cambiar el directorio de trabajo actual.
ec - El parámetro de salida para informe de errores en las sobrecargas que no lanzan excepciones.

[editar] Valor de retorno

1-2) Devuelve el directorio de trabajo actual.
3-4) (Ninguno).

[editar] Excepciones

1-2) 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 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.
3-4) 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

El directorio de trabajo actual es el directorio, asociado con el proceso, que se utiliza como la ubicación inicial en la resolución de nombre de rutas de acceso para rutas relativas.

La ruta de acceso actual como la devuelven muchos sistemas operativos es una variable global peligrosa. Puede ser cambiada inesperadamente por funciones de biblioteca del sistema o de terceros, o por otro hilo.

[editar] Ejemplo

#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
    std::cout << "La ruta de acceso actual es " << fs::current_path() << '\n'; // (1)
    fs::current_path(fs::temp_directory_path()); // (3)
    std::cout << "La ruta de acceso actual es " << fs::current_path() << '\n';
}

Posible salida:

La ruta de acceso actual es "D:/local/AplicDeConsola"
La ruta de acceso actual es "E:/Temp"

[editar] Véase también

Devuelve un directorio adecuado para archivos temporales.
(función) [editar]