使用 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,如果你喜欢的话。
假设我有以下文件夹
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,如果你喜欢的话。