如何以下列形式转换boost :: filesystem :: path:
根/ subdir1 / subdir2 /../ some.file
为:
根/ subdir1 / some.file
可能有多个“go level up”运营商?
答案 0 :(得分:1)
简短的问题,简短的回答:
随后简单地从路径中删除每个/<dirname>/..
次出现。你可以很容易地使用正则表达式。
答案 1 :(得分:1)
从Boost文件系统库中查看canonical。
答案 2 :(得分:0)
为什么不使用branch_path()?它返回boost :: filesystem :: path
的父目录。示例:
boost::filesystem::path path("root/subdir1/subdir2/some.file");
boost::filesystem::path parent = path.branch_path().branch_path(); // "root/subdir1"
boost::filesystem::copy(path, parent);
boost::filesystem::remove(path.branch_path());
您可以随意使用它。