#include <filesystem> 要求 c++17 ,gcc/c++ 编译器8.0以上:
先安装sudo apt-get install gcc-8 g++-8 ;
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 20 --slave /usr/bin/g++ g++ /usr/bin/g++-8
fatal error: filesystem: 没有那个文件或目录_fatal error: filesystem: no such file or directory-CSDN博客这里;
在task.json 文件中配置:
"label": "C/C++: g++-8 build active file",
"args": [
"-fdiagnostics-color=always",
"-g",
"-std=c++17", // 添加此行,启用 C++17
"main.cpp",
"-o",
"${fileDirname}/test.out",
"-lstdc++fs" // 添加链接 filesystem 库
],
有些教程说可以配置c_cpp_properties.json文件,但我没试;
gcc/g++ 9.0/9.1以上以及内置filesystem为标准库了,所以应该可以直接安装使用;
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main() {
// 指定要读取的文件夹路径
fs::path folderPath = "input_data"; // 替换为你的文件夹路径
std::string savePath = "output_data"; // 替换为你的保存路径
// 检查文件夹是否存在
if (fs::exists(folderPath) && fs::is_directory(folderPath)) {
// std::cout << "文件夹路径exist:" << folderPath << std::endl;
// std::cout << "目录内容:" << std::endl;
// 遍历文件夹
for (const auto& entry : fs::directory_iterator(folderPath)) {
// 输出文件或文件夹的路径
// std::cout << entry.path() << std::endl;
// std::cout << entry.path().filename() << std::endl;
// std::cout << entry.path().string() << std::endl;
fs::path targetPath = fs::path(savePath) / entry.path().filename();
std::cout << "targetPath:" << targetPath << std::endl;
}
}
else {
std::cerr << "文件夹不存在或不是一个有效的目录。" << std::endl;
}
return 0;
}