用vscode写C/C++的获取目录总是失败,这是缺了什么吗?fs_path.h报错

以下是利用 C++ 实现读取 D 盘目录的代码:
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main() {
// 指定 D 盘路径
fs::path path("D:/");
// 遍历 D 盘目录
for (const auto &entry : fs::directory_iterator(path)) {
std::cout << entry.path() << std::endl;
}
return 0;
}
首先,我们需要包含 <iostream> 和 <filesystem> 头文件,后者是 C++17 新增的文件系统库,用于操作文件和目录。
然后,我们使用 std::filesystem 命名空间,并声明 fs 为其别名,以方便后续使用。
接着,我们定义了一个 path 变量,指定了 D 盘的路径。注意,路径需要使用正斜杠 / 或双反斜杠 \\。
最后,我们使用 fs::directory_iterator 遍历 D 盘目录,并输出每个目录项的路径。directory_iterator 构造函数接受一个 path 参数,指定要遍历的目录路径。遍历时,我们可以使用 auto 关键字来自动推导出每个目录项的类型,然后调用 path() 方法获取其路径。输出时,我们使用 std::cout 输出到控制台,并在每个路径后面加上换行符 std::endl。
注意,在使用 std::filesystem 之前,需要确保编译器支持 C++17 标准,并在编译时加上 -std=c++17 参数。