如何从带有通配符的路径获得完整路径?

时间:2013-07-03 11:34:58

标签: c++ qt qdir

我有一条路:

  

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)。

2 个答案:

答案 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()执行通配。