我开发MAC OS X中,我必须找到文件夹中文件的应用程序。问题是,我想让用户通过输入QString
来搜索文件。此QString可能是文件的确切名称或文件名中包含的文本。假设文件名为"mysamplefile.txt"
。所以如果用户输入'my'
; 'mysample'
; 'samplefile'
; 'mysamplefile'
或'mysamplefile.txt'
。在所有情况下,我想获得该文件的QFileInfo
。我也给复选框选项'Match Case'
或'Ignore case'
用户获得fileinfo
。我有用户想搜索,我也有由用户选择的位置的QStringList
的strings
一个QStringList
。所以,我想在每一个路径(QStringList searchingdirectorylist
)搜索每个字符串名称(从QStringList strSearchFileName
)。我想在搜索过程后为所有文件做最后的QFileInfoList
。如何搜索一个文件中的QDir
void MainWindowWipe::onSearchingProcess(QStringList strSearchFileName, QStringList searchingdirectorylist)
{
for(int i=0; i<strSearchFileName.size();i++)
{
for(j=0; j<searchingdirectorylist.size();j++)
{
QDir dir(searchingdirectorylist[j]);
dir.setNameFilters(QStringList(strSearchFileName[i]));
dir.setFilter(QDir::Files | QDir::NoDotAndDotDot | QDir::NoSymLinks);
QFileInfoList fileList = dir.entryInfoList();
for (int k=0; k<fileList.count(); k++)
{
QString temp = "";
temp = fileList[k].absoluteFilePath();
}
dir.setFilter(QDir::AllDirs | QDir::NoDotAndDotDot | QDir::NoSymLinks);
QStringList dirList = dir.entryList();
QStringList newList;
for (int l=0; l<dirList.size(); ++l)
{
QString newPath = QString("%1/%2").arg(dir.absolutePath()).arg(dirList.at(i));
newList<<newPath;
onSearchingProcess(strSearchFileName,newList);
}
}
}
}
只有当我只搜索一个具有确切名称的文件时,此函数不适用于本工作。但是我想用不确切的名字搜索多个文件。
感谢兄弟,它的工作对我来说 – rohit