【发布时间】:2020-05-26 09:16:54
【问题描述】:
我有一个目录路径,我想使用 C++ 的std::filesystem 获取该目录的名称。例如,如果路径是:
std::filesystem::path fake_path("C:\\fake\\path\\to\\my_directory\\");
我想获得“my_directory”。
我见过this answer 并最初认为在boost::filesystem 中有效的方法在std::filesystem 中无效,尽管这可能不正确。无论哪种方式,我都不认为这是重复的,因为它专门询问boost::filesystem 和以文件结尾的路径。
我可以想到其他几种解决方案,例如获取 fake_path.end() - 2 或获取字符串并在分隔符上拆分,但它们都不像 fake_path.filename() 那样简单。
有没有一种干净的方式来获取目录路径的最后一部分,大致相当于在文件路径上调用.filename()?
【问题讨论】:
-
我发现了那个问题(这是我链接的那个),但我已经尝试过
.filename(),发现它似乎不适用于std::filesystem中的目录,并假设它是std和boost之间的行为差异或工作,因为该路径最后有一个文件。不过,我现在不太确定。
标签: c++ std-filesystem