行业知识
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); }}
下一篇:怎么快速找点云服务器?