代码拉取完成,页面将自动刷新
#include "searchthread.h"
SearchThread::SearchThread()
{
stopped = false;
}
SearchThread::SearchThread(QString path,QString text)
{
getPath = path; //文件路径
getSearchText = text; //搜索关键词
stopped = false; //是否可以停止搜索
}
void SearchThread::run()
{
while(!stopped)
{
//QStringList fileString;
QDir dir(getPath); //目录
if (!dir.exists())
{
return;
}
QStringList nameFilter;
nameFilter<<"*"+getSearchText.toUtf8()+"*"; //过滤规则getPat
QDirIterator iter (getPath,nameFilter,QDir::Files|QDir::Dirs,QDirIterator::Subdirectories); //迭代器,通过迭代器可以直接枚举所有子文件
/*
* 迭代器类似一个指针, 指针指向一个文件节点, 通过next()函数可以直接遍历整棵文件数
*/
while (iter.hasNext()) //如果还有子文件就一直做
{
QFileInfo info=iter.fileInfo();
if (info.isDir()) //如果是文件夹
{
fileString.prepend(QStringLiteral("文件夹名: ")+"\n"+info.absoluteFilePath());
}
else if(info.isFile())
{
fileString.append(QStringLiteral("文件名及路径: ")+info.fileName()+" \n"+info.absoluteFilePath());
}
iter.next();//迭代器+1
}
//得到QStringList,传递过去
emit sendData(fileString);//fileString是一个字符串数组,存储所有的搜索结果
stopped = true;
}
}
void SearchThread::stop()
{
stopped = true;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。