繁体   English   中英

C++ 递归地遍历路径。 错误:未找到采用“const std::filesystem::directory_entry”类型的右手操作数的运算符

[英]C++ iterate through a path recursively. Error: no operator found which takes a right-hand operand of type 'const std::filesystem::directory_entry'

我想创建一个循环遍历路径中的所有文件夹和文件。 我有以下代码(如此所述)

#include <filesystem> 
#include <iostream>

for (const auto& dirEntry : std::filesystem::recursive_directory_iterator("some path here")) {
        std::cout << dirEntry;
    }

但是,我收到以下错误:

'<<': no operator found which takes a right-hand operand of type 'const std::filesystem::directory_entry' (or there is no acceptable conversion)

谁能解释我如何解决这个问题? 我正在使用 C++17

operator<<的标准库中没有重载,它采用std::filesystem::directory_entry类型的右手运算符,但std::filesystem::path存在一个,您可以从std::filesystem::directory_entry使用path()方法,所以你应该做的就是转换这一行:

std::cout << dirEntry;

至:

std::cout << dirEntry.path();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 C ++ Boost - 没有找到哪个运算符采用&#39;boost :: filesystem :: path&#39;类型的右手操作数 重载&lt;&lt;在C ++错误中的运算符:::二进制&#39;&lt;&lt;&#39;:找不到使用类型为&#39;const std :: string的右侧操作数的运算符 错误C ++ 2679(二进制&#39;&gt;&gt;&#39;:找不到使用类型为&#39;const std :: string&#39;的右侧操作数的运算符(或没有可接受的转换)) 错误:C2679二进制&#39;==&#39;:未找到采用类型为&#39;const std :: string&#39;的右侧操作数的运算符(或者没有可接受的转换 错误C2679:二进制&#39;&lt;&lt;&#39;:找不到运算符,该运算符使用类型为&#39;std :: string&#39;的右侧操作数 C ++没有找到需要右手操作数的&lt;&lt;运算符 错误 C2679:二进制“&lt;&lt;”:未找到采用“std::vector”类型的右侧操作数的运算符<char,std::allocator<char> &gt;&#39; 我如何克服此错误C2679:二进制&#39;&gt;&gt;&#39;:未找到采用&#39;const char []&#39;类型的右侧操作数的运算符 错误C2679:二进制&#39;&gt;&gt;&#39;:未找到采用&#39;const char [4]&#39;类型的右侧操作数的运算符(或没有可接受的转换)22 错误 C2679:二进制“[”:未找到采用“const VerseKey”类型的右侧操作数的运算符(或没有可接受的转换)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM