std::filesystem文件系统

博客围绕在代码路径下操作文件夹展开。介绍了在C++17支持文件系统的情况下,判断文件夹是否存在、创建文件夹的方法。还说明了directory_iterator和recursive_directory_iterator在查看文件夹内容上的区别,以及使用普通string时的注意事项,最后提及想知道文件大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

20231205更新:

想偷个懒在代码路径下生成一个文件夹

if (std::filesystem::exists("./path")) {
            //std::cout << "Path exists." << std::endl;
}
else {
    std::error_code ec;
    std::filesystem::create_directories("./path", ec);
}

C++17 支持文件系统

判断文件夹是否存在

    if (!std::filesystem::exists(dir)) {
        std::cout << "map path wrong!" << std::endl;
        return false;
    }

创建文件夹

std::filesystem::create_directories(dir);

想知道文件夹里面有什么

 directory_iterator和recursive_directory_iterator的区别:

directory_iterator只能知道文件夹下的所有文件名,recursive_directory_iterator不仅能知道文件夹下的所有文件名,还能知道文件夹下文件夹的文件名;

    for (auto const& dir_entry : std::filesystem::directory_iterator(dir) ) 
    {
        std::cout << "dir : " << dir_entry.path() << std::endl;
    }

这里面有个坑,如果是用普通string()

最好使用generic_string() 

想知道文件大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值