从 std::filesystem::path c++ 获取绝对路径

Get the absolute path from std::filesystem::path c++

我有这段代码

auto path = std::filesystem::path("/root/home/../opt/.");

我试过 std::filesystem::absolute() 但后来意识到它不是我想要的结果

我的问题是如何将该相对路径转换为绝对路径,以便结果为 "/root/opt/"

我在 Debian g++-9 上使用 c++17

使用std::filesystem::canonical把路径变成绝对路径,去掉所有..(reference):

auto path = std::filesystem::canonical("/root/home/../opt/.");

给你:

"/root/opt"

你也可以使用这个函数。

 std::cout << std::filesystem::path("/root/home/../opt/.").lexically_normal()    << std::endl;