【发布时间】:2017-08-18 18:30:06
【问题描述】:
是否有任何惯用的方法来使用文件系统库获取路径中的组件数量?还是我错过了一些方法?
或者我是否必须打电话给parent_path(),直到我找到根目录?
【问题讨论】:
-
您打算如何处理这么多组件?因为如果你要迭代它们,有更简单的方法。比如使用迭代器.
标签: c++ c++17 boost-filesystem
是否有任何惯用的方法来使用文件系统库获取路径中的组件数量?还是我错过了一些方法?
或者我是否必须打电话给parent_path(),直到我找到根目录?
【问题讨论】:
标签: c++ c++17 boost-filesystem
size() 方法怎么样?
boost::filesystem::path p;
// fill p
std::cout << p.size() << std::endl;
会给你组件的数量。
另外path 迭代器不会遍历路径的字符串,而是遍历路径的组件。所以这也应该有效:
std::distance(p.begin(), p.end());
【讨论】:
size() 是否存在于std:: 版本的文件系统中?不要立即在 cppreference 上看到它
std 版本。但我经常使用boost 版本。我从来没有享受过专业使用 C++17 的乐趣。
size()。也许可以添加它;我的理解是,了解组件的数量有助于实现。但请注意,它会计算任何根名称、根目录和尾随的空组件...
boost::filesystem::path::size()counts characters, not components。