usan una ruta representar relativa qué punto para los gestion estructura ejemplo doble directorios caracteres archivos archivo acceso absoluta c++ boost filesystems

c++ - una - ruta de acceso ejemplo



boost:: ruta relativa del sistema de archivos y directorio actual? (4)

¿Cómo puedo usar boost::filesystem::path para especificar una ruta relativa en Windows? Este intento falla:

boost:filesystem::path full_path("../asset/toolbox"); // invalid path or directory.

Tal vez para ayudarme a depurar, ¿cómo obtener el directorio de trabajo actual con boost :: filesystem?


Cuando escribe "../your/path" ¿no está especificando una ruta tipo Unix? Creo que lo que debes hacer para obtener rutas específicas del sistema es:

boost:filesystem::path full_path(".." / "asset" / "toolbox");

En este caso, el ''/'' es un operador que concatena rutas de una manera específica del sistema y no es parte de la ruta que usted especifique.


Pruebe la función system_complete .

namespace fs = boost::filesystem; fs::path full_path = fs::system_complete("../asset/toolbox");

Esto imita exactamente cómo el sistema operativo en sí resolvería las rutas relativas.


Si desea cambiar al directorio anterior, intente algo como esto:

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;


getcwd = boost::filesystem::path full_path(boost::filesystem::current_path());

Ejemplo:

boost::filesystem::path full_path(boost::filesystem::current_path()); std::cout << "Current path is : " << full_path << std::endl;

Para acceder a current_path uno necesita agregar #include <boost/filesystem.hpp> .