boost :: filesystem相对路径和当前目录?

Jak*_*ake 32 c++ filesystems boost

如何boost::filesystem::path在Windows上指定相对路径?此尝试失败:

boost:filesystem::path full_path("../asset/toolbox"); // invalid path or directory.
Run Code Online (Sandbox Code Playgroud)

也许是为了帮我调试,如何使用boost :: filesystem获取当前的工作目录?

hmu*_*ner 63

getcwd = boost::filesystem::path full_path(boost::filesystem::current_path());
Run Code Online (Sandbox Code Playgroud)

例:

boost::filesystem::path full_path(boost::filesystem::current_path());
std::cout << "Current path is : " << full_path << std::endl;
Run Code Online (Sandbox Code Playgroud)

要访问current_path一个需要添加#include <boost/filesystem.hpp>.

  • 这里似乎有一个缺陷,这不是一个有效的C++表达式,在boost :: filesystem :: path和full_path之间是否缺少某些东西? (2认同)
  • 这不是有效的 C++ 表达式,而是答案的捷径。在现代 C++ 中,你可以这样写: auto cwd = boost::filesystem::current_path(); (2认同)

uli*_*tko 16

试试这个system_complete功能.

namespace fs = boost::filesystem;

fs::path full_path = fs::system_complete("../asset/toolbox");
Run Code Online (Sandbox Code Playgroud)

这模仿了操作系统本身如何解析相对路径.