我如何使用boost::filesystem::path
在Windows上指定相对路径?以下尝试失败:
boost:filesystem::path full_path("../asset/toolbox"); // invalid path or directory.
也许为了帮助我调试,如何使用boost::filesystem获取当前工作目录?
我如何使用boost::filesystem::path
在Windows上指定相对路径?以下尝试失败:
boost:filesystem::path full_path("../asset/toolbox"); // invalid path or directory.
也许为了帮助我调试,如何使用boost::filesystem获取当前工作目录?
getcwd = boost::filesystem::path full_path(boost::filesystem::current_path());
示例:
boost::filesystem::path full_path(boost::filesystem::current_path());
std::cout << "Current path is : " << full_path << std::endl;
要访问current_path
,需要添加#include <boost/filesystem.hpp>
。
尝试使用system_complete
函数。
namespace fs = boost::filesystem;
fs::path full_path = fs::system_complete("../asset/toolbox");
这完全模拟了操作系统本身解析相对路径的过程。
cd ..
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;
当你输入“../your/path”时,你是不是在指定一个类Unix的路径?我认为为了获取特定于系统的路径,你应该这样做:
boost:filesystem::path full_path(".." / "asset" / "toolbox");
boost::filesystem::path full_path(boost::filesystem::path("../../../asset/toolbox"));
这行代码的作用是获取当前文件夹的上一级目录中的 /asset/toolbox
目录的完整路径。 - ar2015