如何以以下形式转换 boost::filesystem::path:
root/subdir1/subdir2/../some.file
至:
根/subdir1/some.file
可能有多个“升级”操作员?
如何以以下形式转换 boost::filesystem::path:
root/subdir1/subdir2/../some.file
至:
根/subdir1/some.file
可能有多个“升级”操作员?
从 Boost 文件系统库中查看规范。
简短的问题,简短的回答:
通过随后简单地擦除/<dirname>/..
路径中的每一个事件。您可以轻松地为此使用正则表达式。
为什么不使用 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());
你可以随心所欲地使用它。