2

如何以以下形式转换 boost::filesystem::path:

root/subdir1/subdir2/../some.file

至:

根/subdir1/some.file

可能有多个“升级”操作员?

4

3 回答 3

2

从 Boost 文件系统库中查看规范。

于 2013-06-12T10:21:22.243 回答
1

简短的问题,简短的回答:

通过随后简单地擦除/<dirname>/..路径中的每一个事件。您可以轻松地为此使用正则表达式。

于 2013-06-12T10:19:29.820 回答
1

为什么不使用 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());

你可以随心所欲地使用它。

于 2019-03-06T14:11:56.220 回答