用vscode写C/C++,fs_path.h报错

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

img

以下是利用 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 参数。