2011-04-15 22 views
9

Al iniciar el programa, quiero imprimir la ruta actual usando current_path() ("C: \ workspace \ projects"). Y luego quiero poder cambiar la ruta a, digamos "c: \ archivos de programa", así que cuando imprima de nuevo la ruta_actual() quiero imprimir "c: \ archivos de programa". Algo como esto¿Cómo puedo cambiar la ruta actual usando Boost.Filesystem

int main() 
{ 
    cout << current_path() << endl; // c:\workspace\projects 
    aFunctionToChangePath("c:\program files"); 
    cout << current_path() << endl; // c:\program files 
} 

¿Hay una función en la biblioteca que me falta para que pueda realizar esto?

+0

¿Se permite que el sistema operativo específico? – RedX

+0

sí, está bien así también – Kobe

Respuesta

13
int main() 
{ 
    cout << current_path() << '\n'; // c:\workspace\projects 
    current_path("c:\\program files"); 
    cout << current_path() << '\n'; // c:\program files 
} 
+0

Hmm, eso fue simple, no sabía que puedes hacer eso. Muchas gracias – Kobe

1

Si desea realizar un cambio en un directorio diferente, entonces yo sugeriría probar este ejemplo:

boost::filesystem::path full_path(boost::filesystem::current_path()); 
std::cout << "Current path is : " << full_path << std::endl; 
//system("cd ../"); // change to previous dir -- this is NOT working 
chdir("../"); // change to previous dir -- this IS working 
boost::filesystem::path new_full_path(boost::filesystem::current_path()); 
std::cout << "Current path is : " << new_full_path << std::endl; 
+0

Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. – Jeroen

+0

Acepto, así que lo corrigí – serup

Cuestiones relacionadas