我有boost::filesystem::path
个实例x
。我想确定x
中是否包含任何路径分隔符。
现在,我可以在\\
中查找/
和x.string()
,但我对提升方式感兴趣,这意味着使用boost::filesystem
库,如果可能的话。
感谢。
修改
c:
等)。我也不要他们。答案 0 :(得分:4)
你不能。
但你真的想要吗?例如,c:a
在Windows上包含两个路径元素c:
和a
。为什么需要搜索路径分隔符?是什么让你认为所有平台上都存在这样的东西? OpenVMS中的路径分隔符是什么?例如。在:
[a.b.c]a.txt;12
士气:路径是人们习惯思考的更复杂的野兽。实际上boost::filesystem::path
在POSIX路径之外的任何地方都不能很好地工作。但这是另一个故事。
编辑:假设您的问题是如何检查路径是否包含单个元素,那么答案就是计算元素数量:
boost::filesystem::path p = ...;
if(std::distance(p.begin(), p.end()) == 1)
cout << "one element\n";