- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚注意到 std::filesystem::recursive_directory_iterator
使用不同的路径分隔符(即 /
vs \
),这取决于它是否打开Windows 或 Linux,是否有办法让它返回带有 '/'
的路径以使其在系统间保持一致?
这就是我获取路径的方式:
for(auto& path: fs::recursive_directory_iterator(dir_path))
{
// Skip directories in the enumeration.
if(fs::is_directory(path)) continue;
string path_str = path.path().string();
}
我的意思是,path_str
的内容在两个操作系统之间会有所不同(因为分隔符会不同),我希望它们相同。我可以只在最后的字符串上替换它们,但是这比我可以指示 STL 对所有内容使用“/”是无效的要使用更多的周期。
最佳答案
因此,您的问题与 recursive_directory_iterator
无关,它迭代 directory_entry
对象,而不是路径。您的困惑可能源于目录条目可以隐式转换为路径,因此您可以这样使用它们。
你的问题实际上是关于path::string()
,as the documentation states , 使用 native 格式(即带有依赖于平台的分隔符)。无论您如何获得路径,您都会遇到同样的问题。
如果要获取/
作为目录分隔符,请使用path::generic_string()
获取通用格式的路径。
for(auto& dir_entry: fs::recursive_directory_iterator(dir_path))
{
if(dir_entry.is_directory()) continue;
string path_str = dir_entry.path().generic_string();
}
关于c++ - 具有一致路径分隔的 std::filesystem::recursive_directory_iterator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70855282/
由于 C++17 std::filesystem 与 boost::filesystem 非常相似,所以我尝试做与这个问题相同的事情: Escaping some Directories in ite
我试图在我的 visual studio 2017 上通过 c++17 获取目录中的所有文件,但我刚刚遇到了一个非常奇怪的问题。如果我像这样指定目录,我可以毫无问题地获取所有文件: for (
我正在使用 boost 迭代器“recursive_directory_iterator”递归扫描目录。但是,当迭代器运行到我的应用程序无权访问的目录时,会抛出“boost::filesystem3:
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我刚刚注意到 std::filesystem::recursive_directory_iterator 使用不同的路径分隔符(即 / vs \),这取决于它是否打开Windows 或 Linux,是
以下函数: void foo(const std::string& dir) { for (auto& el : std::filesystem::recursive_directory_it
我发现 boost::recursive_directory_iterator 与 boost::directory_iterator 有不同的行为 所以我有两个结构: struct director
我需要递归地遍历一个目录;我从这里的另一个线程得到了一个非常好的功能;为了我的目的对它进行了一点点调整,它在带有 boost 1.62 和 clang 的 Mac 上完美运行。 但是,我们使用的是 S
我需要递归地从目录及其子目录中获取所有文件,但不包括几个目录。我知道他们的名字。是否可以使用 boost::filesystem::recursive_directory_iterator ? 最佳答
配置 macOS:10.15.5 xcode:11.5 clang :11.0.3 项目设置为c++ 17 我是macOS的新手,正在尝试解决一个简单的问题。 #include #include
我需要在一个目录及其子目录中递归搜索文件,但我想从搜索中排除一个路径(及其文件和子目录)。 我正在使用 std::experimental::filesystem::recursive_directo
for (auto p : std::filesystem::recursive_directory_iterator(get_folder(), std::filesystem::directory
std::filesystem::directory_iterator 和/或 std::filesystem::recursive_directory_iterator 保证返回std: :file
我正在扫描整个 C 盘以查找 jpg 文件,代码如下: std::string extensions[] = { ".jpg" }; recursive_directory_iterator dir(
我想使用标准算法从递归目录列表中过滤掉一些条目。假设只留下常规文件。STL 中的一些算法确实有效,例如std::count_if,但其他的,例如 std::remove_if,则不这样做。 它应该工作
我下面的代码不断遇到段错误,我似乎无法弄清楚原因。请帮助~~我的目标是读取一个文件夹及其所有子文件夹以查找所有以扩展名“.txt”结尾的文件,因此我使用 boost 的递归目录迭代器来帮助完成任务。由
我需要递归或不递归地遍历文件夹(给定 bool 参数)。我发现有 fs::recursive_directory_iterator() 和 fs::directory_iterator()。在 Jav
我想使用 boost::filesystem 提供的 recursive_directory_iterator 来删除一个目录。但是在构造时,调试器会停止并显示消息 Signal Received:
我是一名优秀的程序员,十分优秀!