C++17<filesystem>文件操作 ,通过路径信息判断属于哪个磁盘,计算剩余内存空间

本文介绍了如何使用C++17的filesystem库进行磁盘路径判断、剩余空间计算,以及文件夹删除、存在性和大小的检查方法。

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

#通过路径信息判断属于哪个磁盘,计算剩余内存空间

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

int main() {
    fs::path path = "your_folder_or_file_path";  // 替换成你要检查的路径

    std::string disk = fs::absolute(path).root_directory().string();  // 获取该路径所属的磁盘名称
    std::cout << "路径 " << path << " 属于磁盘 " << disk << std::endl;

    uintmax_t space = fs::space(path).available;  // 获取该磁盘的可用空间
    std::cout << "剩余内存空间: " << space << " 字节" << std::endl;

    return 0;
}



#使用C++17实现删除文件夹的功能

#include <filesystem>
#include <iostream>

int main() {
    std::filesystem::path folderPath = "path_to_your_folder";  // 指定要删除的文件夹路径

    if (std::filesystem::exists(folderPath) && std::filesystem::is_directory(folderPath)) {
        std::filesystem::remove_all(folderPath);  // 使用remove_all函数递归删除文件夹及其中的所有内容
        std::cout << "文件夹删除成功" << std::endl;
    } else {
        std::cout << "指定的路径不存在或不是文件夹" << std::endl;
    }

    return 0;
}

#判断文件夹目录是否存在,不存在就创建

bool isExistFolder(std::string folderPath)
{
    path path1(folderPath);
    if (!exists(path1))                   //必须先检测路径是否存在才能使用文件入口.
    {
        create_directories(path1);        //直接创建一个目录结构
    }

    directory_entry entry(path1);         //文件入口
    if (entry.status().type() == file_type::directory)	//强枚举类型
    {
        return true;
    }
    return false;
}

##计算某个文件夹的内存大小

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

int main() {
    fs::path folderPath = "your_folder_path";  // 替换成你要检查的文件夹路径

    uintmax_t totalSize = 0;
    for (const auto& entry : fs::recursive_directory_iterator(folderPath)) {
        if (fs::is_regular_file(entry.status())) {
            totalSize += fs::file_size(entry.path());
        }
    }

    std::cout << "文件夹占用的内存大小为: " << totalSize << " 字节" << std::endl;

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值