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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

notfindjob

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值