加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
searchthread.cpp 1.61 KB
一键复制 编辑 原始数据 按行查看 历史
孟强定 提交于 2020-12-20 09:29 . 增加类搜索的注释
#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;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化