2013-07-03 47 views
0

我有这样一个路径:如何从通配符中获得完整路径?

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

我不敢相信'_path'是' “C:/路径/到/我*文件/”' 。 'QDir :: entryList()'只返回现有的文件/目录/符号链接,所以所有的工作正常或'dirs'是空的列表 – SpongeBobFan

回答

3

使用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

展开文件名被称为globbing。在Windows上,函数FindFirstFile()/ FindNextFile()会进行匹配。