小工具知识网

当前位置: 首页 > 行业知识 > Qt使用QDir创建时间相关文件目录及遍历文件夹

行业知识

Qt使用QDir创建时间相关文件目录及遍历文件夹

2026-11-01 05:28:48 来源:互联网转载

目录

  • 1、在根目录下创建年月日格式文件夹
  • 2、QDir的使用
    • 2.1 常用属性和方法
    • 2.2 遍历文件夹
      • 2.2.1 遍历文件夹下一层的文件
      • 2.2.2 ���联遍历文件夹及其子孙文件夹中的文件

        1、在根目录下创建年月日格式文件夹

        如在 /home/wen/Data根目录下创建以当前日期命名的文件夹(20230625);在日期命名文件夹下创建以当前时间命名的文件夹(092116)

        ()
        QString save_path = "/home/wen/Data";//根目录名称//以当前日期命名的文件夹名称QString str_day = QDateTime::currentDateTime().toString("yyyyMMdd");QString day_path = save_path + "/" + str_day;QDir day_dir(day_path);//列出当前日期命名的文件夹if(!day_dir.exists())//若不存在,则创建{QDir().mkdir(day_path);}//以当前时间命名的文件夹名称QString str_time = QDateTime::currentDateTime().toString("hhmmss");QString time_path = day_path + "/" + str_time;QDir time_dir(time_path);//列出当前时间命名的文件夹if(!time_dir.exists())//若不存在,则创建{QDir().mkdir(time_path);}

        上述代码需包含QString、QDir、QTime头文件

        2、QDir的使用

        参考QDir说明和使用、Qt遍历文件夹

        ()

        QDir 是 Qt 框架中用于处理文件和目录的类,提供了许多方便的方法来操作文件系统,可用于获取目录下的文件和子目录列表、创建和删除目录、检查文件是否存在、可使用绝对路径或相对路径进行初始化,可通过设置路径来访问不同的目录。

        2.1 常用属性和方法

        exists():判断目录是否存在

        currentPath():获取当前工作目录

        setPath():设置目录路径

        dirName():获取目录名

        entryList():获取目录中的文件和子目录列表

        mkdir():创建目录

        rmdir():删除目录

        remove():删除文件

        QDir dir(path);//设置类型过滤器,只为文件格式dir.setFilter(QDir::Files | QDir::NoSymLinks);QStringList filters;filters//判断路径是否存在    QDir dir(path);    if(!dir.exists())    {        return;    }    dir.setFilter(QDir::Files | QDir::NoSymLinks);    QFileInfoList list = dir.entryInfoList();    int file_count = list.count();    if(file_count         return;    }    QStringList string_list;    for(int i=0; i        QFileInfo file_info = list.at(i);        QString suffix = file_info.suffix();        if(QString::compare(suffix, QString("png"), Qt::CaseInsensitive) == 0)           {               QString absolute_file_path = file_info.absoluteFilePath();            string_list.append(absolute_file_path);        }    }}//判断路径是否存在    QDir dir(path);    if(!dir.exists())    {        return;    }    //设置类型过滤器,只为文件格式    dir.setFilter(QDir::Files | QDir::NoSymLinks);    QStringList filters;    filters        return;    }        QStringList string_list;    //获取分隔符    //QChar separator = QDir::separator();    QChar separator = QChar('/');    if(!path.contains(separator))    {        separator = QChar('\');    }    QChar last_char = path.at(path.length()-1);    if(last_char == separator)    {        separator = QChar();    }        for(uint i=0; i        QString file_name = dir[i];  //文件名称        QString file_path = path + separator + file_name;   //文件全路径        string_list.append(file_path);    }    //string_list 添加完成之后,就可以查看list中的文件路径了}//判断路径是否存在QDir dir(path);    if(!dir.exists())    {        QDir().mkdir(path);//不存在则创建    }    //获取所选文件类型过滤器    QStringList filters;    filters        dir_iterator.next();        QFileInfo file_info = dir_iterator.fileInfo();        QString absolute_file_path = file_info.absoluteFilePath();        string_list.append(file_path);    }}

上一篇:香港流量卡全攻略,选购、使用及优惠大解析

下一篇:怎么快速找点云服务器?