如何获取std::filesystem::path中的最后一个目录?

How to get the last directory in a std::filesystem::path?

我有一个目录路径,我想使用 C++ std::filesystem 获取该目录的名称。例如,如果路径是:

std::filesystem::path fake_path("C:\fake\path\to\my_directory\");

我想要 "my_directory".

我看过 并最初假设在 boost::filesystem 中有效的方法在 std::filesystem 中无效,尽管这可能不正确。无论哪种方式,我都不认为这是重复的,因为那个是专门询问 boost::filesystem 和以文件结尾的路径。

我可以想到其他几种解决方案,例如获取 fake_path.end() - 2 或获取字符串并在分隔符上拆分,但其中 none 与 fake_path.filename() 一样简单'去过。

是否有一种简洁的方法来获取目录路径的最后一部分,大致相当于在文件路径上调用 .filename()

您可以通过以下方式获得它:

fake_path.parent_path().filename()