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

如下两张图所示

一、文件夹。如何通过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;
相关推荐
octopus_c2 小时前
C++ 入门
开发语言·c++·算法
raindayinrain3 小时前
c++新特性--实用新特性
c++
Soneswy3 小时前
C++基础篇——类与对象(中)
开发语言·c++
半杯咖啡半行码4 小时前
QML进阶实战(二):异步网络、性能优化与工程化落地
网络·qt·性能优化·qml
kiracrimson4 小时前
STL:List的使用和模拟实现
开发语言·c++·list
二十七日秋4 小时前
算法刷题笔记「Day 1|四道 OJ 入门题里的深坑」
c语言·汇编·数据结构·c++·笔记·python·算法
流年如夢5 小时前
继承与多态_继承篇
c++·继承·面向对象·c++进阶
沫璃染墨5 小时前
从零入门计算机网络系列(十):HTTP协议进阶——从资源路径解析到状态码与请求头详解
linux·运维·服务器·网络·c++·http
xiaoye-duck5 小时前
《C++ 工具库实战》高性能日志 spdlog:从基础使用到工程化封装
c++·第三方库