如何通过部分文件名,读取出整个文件名

发布时间:2026/10/31 7:05:06
如何通过部分文件名,读取出整个文件名

如下两张图所示

一、文件夹。如何通过mn识别mn_00026.275?

// 定义目录路径,并使用 QDir 对象打开该目录// entryList 方法用于获取目录下的文件列表// QStringList() << "mn_000*" 表示使用通配符过滤,只匹配以 "mn_000" 开头的文件// QDir::Files 表示只查找文件,不包含文件夹QStringList files=QDir("E:/xycd/00026/grind").entryList(QStringList()<<"mn_00026*",QDir::Files);// 1. 指定目标目录QString dirPath="E:/XYCD/00026/grind";// 判断文件列表是否不为空(即是否找到了匹配的文件)if(!files.isEmpty())// 如果找到了,输出列表中的第一个文件名(即 mn_000.275)sourceFile=files.first();//qDebug() <<QDirdir(dirPath);// 2. 查找以 "mn_00026" 开头的文件夹// 注意:因为它是 File folder,所以必须使用 QDir::Dirs 或 QDir::AllEntriesQStringList folderList=dir.entryList(QStringList()<<"mn_00026*",QDir::Dirs|QDir::NoDotAndDotDot);// 3. 判断是否找到并拼接完整路径if(!folderList.isEmpty()){// 获取目标文件夹名称(例如:mn_00026.275)QString folderName=folderList.first();// 获取带完整路径的绝对路径(例如:E:/XYCD/00026/grind/mn_00026.275)QString fullPath=dir.absoluteFilePath(folderName);}else{//qDebug() << "未找到匹配的文件夹,请检查路径或名称是否正确。";}

二、文件。如何通过con识别conturi1.dat

// 定义目录路径,并使用 QDir 对象打开该目录// entryList 方法用于获取目录下的文件列表// QStringList() << "mn_000*" 表示使用通配符过滤,只匹配以 "mn_000" 开头的文件// QDir::Files 表示只查找文件,不包含文件夹QStringList files=QDir("E:/xycd/00026/grind/mn_00026.275").entryList(QStringList()<<"con*",QDir::Files);// 1. 指定目标目录QString dirPath="E:/XYCD/00026/grind/mn_00026.275";// 判断文件列表是否不为空(即是否找到了匹配的文件)if(!files.isEmpty())// 如果找到了,输出列表中的第一个文件名(即 mn_000.275)sourceFile=files.first();//qDebug() <<QDirdir(dirPath);// 2. 查找以 "mn_00026" 开头的文件夹// 注意:因为它是 File folder,所以必须使用 QDir::Dirs 或 QDir::AllEntriesQStringList folderList=dir.entryList(QStringList()<<"pg*",QDir::Files);// 3. 判断是否找到并拼接完整路径if(!folderList.isEmpty()){// 获取目标文件夹名称(例如:mn_00026.275)QString folderName=folderList.first();// 获取带完整路径的绝对路径(例如:E:/XYCD/00026/grind/mn_00026.275)QString fullPath=dir.absoluteFilePath(folderName);}else{//qDebug() << "未找到匹配的文件夹,请检查路径或名称是否正确。";}

三、如何只读取最后两级路径

//listView_2用Tab无法聚焦,强制固定反调文件路径和命名QString listViewFilePath=modelList->filePath(listView->currentIndex());QString listView_2FilePath=modelList2->filePath(listView_2->currentIndex());//读取反调文件路径// 先规范化路径,去掉末尾多余的斜杠QString normalized=QDir::cleanPath(listView_2FilePath);// 取最后一级:mn_00026.275QString last=QFileInfo(normalized).fileName();// 取倒数第二级:grindQString secondLast=QFileInfo(QFileInfo(normalized).absolutePath()).fileName();// 拼成倒数两级:/grind/mn_00026.275addFile="/"+secondLast+"/"+last;