ubuntu18.04 vscode c++ filesystem 使用

#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-优快云博客这里;

在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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值