#include <QDir>
#include <QFile>
bool search(const QString &folderDir, const QString& text)
{
QDir dir(folderDir);
QFileInfoList fileList;
QFileInfo curFile;
if (!dir.exists()) { return false; }//文件不存,则返回false
fileList = dir.entryInfoList(QDir::Dirs | QDir::Files
| QDir::Readable | QDir::Writable
| QDir::Hidden | QDir::NoDotAndDotDot
, QDir::Name);
int infoNum = fileList.size();
for (int i = infoNum - 1; i >= 0; i--)
{
curFile = fileList[i];
if (curFile.isFile())//如果是文件,删除文件
{
QFile file(curFile.filePath());
if (file.open(QIODevice::ReadOnly))
{
QString str = file.readAll();
if (str.contains(text))
{
qDebug() << curFile.filePath();
}
}
}
if (curFile.isDir())//如果是文件夹
{
QDir dirTemp(curFile.filePath());
QFileInfoList fileList1 = dirTemp.entryInfoList(QDir::Dirs | QDir::Files
| QDir::Readable | QDir::Writable
| QDir::Hidden | QDir::NoDotAndDotDot
, QDir::Name);
if (fileList1.size() == 0)//下层没有文件或文件夹
{
dirTemp.rmdir(".");
fileList.removeAt(i);
}
else//下层有文件夹或文件
{
for (int j = 0; j<fileList1.size(); j++)
{
if (!(fileList.contains(fileList1[j])))
fileList.append(fileList1[j]);
}
}
}
}
return true;
}