我有一条路:
C:\路径\到\我*文件\
我希望获得相应的完整路径(如果存在):
C:\路径\到\ my1file \
我尝试使用这个Qt代码,但结果与我在开头的路径相同:
QStringList filters;
filters << "C:/path/to/my*file/";
QDir dir;
dir.setNameFilters(filters);
QStringList dirs = dir.entryList(filters);
_path = dirs.at(0); // get the first path only
我不应该获得通过过滤器的所有文件/目录吗? 为什么_path等于“C:/ path / to / my * file /”?
是否可以仅使用C ++ 98 / STL执行相同的操作? (在这个项目中我不能使用Boost / C ++ 11)。
答案 0 :(得分:4)
使用filters
过滤文件/文件夹,并在QDir对象中设置路径:
QStringList filters;
filters << "my*file";
QDir dir("C:/path/to/");
QStringList dirs = dir.entryList(filters);
if (dirs.size() > 0)
{
qDebug() << dirs.at(0);
}
答案 1 :(得分:0)
扩展文件名称为globbing。在Windows上,函数FindFirstFile()/ FindNextFile()执行通配。