确定给定路径是否包含路径分隔符的提升方式是什么

What is the boost way to determine if the given path contains a path delimiter?

本文关键字:路径 方式 是什么 包含 是否 分隔符      更新时间:2023-10-16

我有一个boost::filesystem::path实例x。我想确定x中是否包含任何路径分隔符。

现在,我可以简单地在x.string()中查找\/,但我对boost方法感兴趣,也就是说,如果可能的话,可以使用boost::filesystem库。

谢谢。

编辑

  1. 让我缩小问题的范围。我的工具永远不会运行在任何东西上,但Windows操作系统
  2. 我忘了驱动器的规格(c:等)。我也不想要

你不能

但你真的想吗?例如,c:a在窗口上包含两个路径元素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 elementn";