如下两张图所示
一、文件夹。如何通过mn识别mn_00026.275?

cpp
// 定义目录路径,并使用 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() <<
QDir dir(dirPath);
// 2. 查找以 "mn_00026" 开头的文件夹
// 注意:因为它是 File folder,所以必须使用 QDir::Dirs 或 QDir::AllEntries
QStringList 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

cpp
// 定义目录路径,并使用 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() <<
QDir dir(dirPath);
// 2. 查找以 "mn_00026" 开头的文件夹
// 注意:因为它是 File folder,所以必须使用 QDir::Dirs 或 QDir::AllEntries
QStringList 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() << "未找到匹配的文件夹,请检查路径或名称是否正确。";
}
三、如何只读取最后两级路径
cpp
//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.275
QString last = QFileInfo(normalized).fileName();
// 取倒数第二级:grind
QString secondLast = QFileInfo(QFileInfo(normalized).absolutePath()).fileName();
// 拼成倒数两级:/grind/mn_00026.275
addFile = "/" + secondLast + "/" + last;