6

我有这段代码

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

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

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

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

4

2 回答 2

7

用于std::filesystem::canonical将路径转换为完全..删除的绝对路径(参考):

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

给你:

"/root/opt"
于 2020-07-04T11:52:09.047 回答
4

您也可以使用 from 此功能。

 std::cout << std::filesystem::path("/root/home/../opt/.").lexically_normal()    << std::endl;
于 2020-07-04T12:00:31.537 回答