当前位置: 首页 > news >正文

QT 磁盘文件 教程04-创建目录、删除目录、遍历目录

【1】新建目录

bool CreateDir(QString name){
   QString fileName = name ;
   QDir dir(fileName);
   if (dir.isEmpty()) {
        dir.mkdir(fileName);
        return true;
   }else{
        qDebug()<<"文件夹已存在";
        return false;
   }
}

【2】删除目录

bool DeleteDir(QString fileName){
    if (QFile::exists(fileName)) {
        QDir qDir(fileName);
        qDir.removeRecursively();   
        return true
    }
    return false;
}

【3】遍历目录

QList ListFolder(QString path){
    QDir dir(path);
    //仅显示目录和文件
    dir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot|QDir::Files | QDir::NoSymLinks);
    QFileInfoList list = dir.entryInfoList();
    int file_count = list.length();
    QList<QString> list2 ;    
    for(int i=0; i<file_count; i++){
        QFileInfo file_info = list.at(i);
        QString suffix = file_info.suffix();
        QString absolute_file_path = file_info.absoluteFilePath();
        QString file_name = file_info.fileName();
        QString type = "文件";
        if(!file_info.isDir()){            
            long size = file_info.size();
            double file_size = (double)size/1024.0;  //文件大小显示单位:Kb
            QString file_size_res;
            if(file_size<1024.0){
                file_size_res = QString("%1Kb").arg(QString::number(file_size,'f',2));
            }else{
                file_size = file_size/1024.0;        //文件大小显示单位:MB
                file_size_res = QString("%1Mb").arg(QString::number(file_size,'f',2));
            }
            type = QString("%1%2").arg(suffix).arg("文件");
            QString datetime =file_info.lastModified().toLocalTime().toString("yyyy/MM/dd hh:mm:ss");
           
        }else{
            QString type=QString("%1").arg("目录");
            QString datetime=file_info.lastModified().toLocalTime().toString("yyyy/MM/dd hh:mm:ss");           
           
        }
        list2.append(file_name);
        list2.append(type);
        list2.append(file_size_res);
        list2.append(datetime); 
        list2.append(absolute_file_path);        
    }
    return list2;

}

相关文章:

  • OpenEuler kinit报错找不到文件的解决办法
  • js给后端发送请求的方式有哪些
  • 软考中级-数据库-5.1 计算机网络概述与网络硬件基础
  • Mmybatis xml 连接数据库的方法
  • PyTorch 深度学习实战(13):Proximal Policy Optimization (PPO) 算法
  • Oracle Data Guard(数据保护)详解
  • Python print() 打印多个变量时,可变对象和不可变对象的区别
  • 图论入门【数据结构基础】:什么是图?如何表示图?
  • Linux IP 配置
  • 完全托管的DeepSeek-R1模型正式登陆Amazon Bedrock:安全部署与使用指南
  • 【系统架构设计师】操作系统 - 文件管理 ② ( 位示图 | 空闲区域 管理 | 位号 | 字号 )
  • Flask 模版引擎的语法
  • C语言-自定义类型:联合和枚举
  • OpnenHarmony 开源鸿蒙北向开发——1.开发环境搭建(DevEco Studio 5.03)
  • 高主频GPU+RTX4090:AI生图性能优化超150%
  • GIT标签(Tag)操作
  • Cursor与Coze结合开发电影推荐系统:一次高效的技术实践
  • 数据结构——串、数组和广义表
  • golang开发支持onlyoffice的token功能
  • 自定义uniapp组件,以picker组件为例
  • 五大光伏龙头一季度亏损超80亿元,行业冬天难言结束
  • 五部门:开展新就业形态劳动者劳动权益保障水平提升专项行动
  • 为治理商家“卷款跑路”“退卡难”,预付式消费司法解释5月起实施
  • 人民日报:在大有可为的时代大有作为
  • 三大白电巨头去年净利近900亿元:美的持续领跑,格力营收下滑
  • 电话费被私改成48元套餐长达数年,投诉后移动公司退补600元话费