MAC OS X 用のアプリケーションを開発しています。このアプリケーションでは、フォルダー内のファイルを検索する必要があります。問題は、ユーザーが快適にファイルを検索できるようにしたいということですQString
。この QString は、ファイルの正確な名前またはファイル名に含まれるテキストである可能性があります。ファイル名が"mysamplefile.txt"
. したがって、ユーザーが次のいずれかを入力した場合'my'
; 'mysample'
; 'samplefile'
; 'mysamplefile'
または'mysamplefile.txt'
。すべての場合において、そのファイルの を取得したいと考えてQFileInfo
います。また、チェックボックスオプション'Match Case'
または'Ignore case'
ユーザーが取得できるようにしますfileinfo
。ユーザーが検索したい場所とQStringList
、ユーザーが選択した場所の があります。だから私はすべてのパス()で各文字列名(から)を検索したい。そして、決勝に進みたいstrings
QStringList
QStringList strSearchFileName
QStringList searchingdirectorylist
QFileInfoList
検索プロセス後のすべてのファイルに対して。
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);
}
}
}
}
この機能は、正確な名前のファイルを1つだけ検索した場合にのみ機能します。しかし、正確な名前ではない複数のファイルを検索したい。