用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
参数。