使用 boost::filesystem 提取目录的父文件夹

Extract the parent folder of a directory using boost::filesystem

假设我有以下文件夹

std::string m("C:\MyFolderA\MyFolderB\MyFolderC");
boost::filesystem::path p(m);

我是否可以提取此文件夹的父文件夹。我想从上面的路径中获取字符串 MyFolderB..

有方法parent_path,查看文档。

或者,如果您更喜欢字符串操作方法。

#include <algorithm>

const std::string m("C:\MyFolderA\MyFolderB\MyFolderC");
const std::string slash("\");
auto last_slash(std::find_end(std::cbegin(m), 
                              std::cend(m), 
                              std::cbegin(slash),
                              std::cend(slash)));
auto second_to_last_slash(std::find_end(std::cbegin(m), 
                                        last_slash,
                                        std::cbegin(slash), 
                                        std::cend(slash)));

const std::string parent(++second_to_last_slash, last_slash);

Live on Coliru,如果你喜欢的话。