使用java进行本地文件全盘搜索
来源:互联网 发布:python 循环读取文件 编辑:程序博客网 时间:2024/05/20 09:24
由于本地文件越来越多, 有时需要找一个文件时, 总不能第一时间记得它的路径.
也可配置线程池大小(默认100), 初始搜索路径(默认全盘搜索)
从网上下了一个软件: Everything, 是依据NTFS文件系统的文件索引来完成搜索的, 对于FAT32并不适用.
自己用java写了一个小程序, 用于全盘扫描(分为按条件(大小), 按名称)来进行全盘文件的搜索.
____________小程序下载
1. 初始搜索类(二种方式)
LocalFileSearcher searcher = new LocalFileSearcher(); //默认全盘, 100线程池大小
SearchConfig searchConfig = new SearchConfig(); searchConfig.setStartFolder(null);//初始搜索路径 searchConfig.setThreadNum(50);//线程池大小 LocalFileSearcher searcher = new LocalFileSearcher(searchConfig);
2. 开始搜索文件(三种方式)
//默认关键字来搜索searcher.doSearch("test");
//关键字搜索 搜索配置 KeyWordFilterConfig filterConfig = new KeyWordFilterConfig(); filterConfig.setMatchStart(false);//匹配开始段 filterConfig.setMatchEnd(true);//匹配结束段 filterConfig.setCaseSensitive(false);//大小写不敏感 searcher.doSearch("TEST", filterConfig);
//条件搜索 ConditionFilterConfig filterConfig = new ConditionFilterConfig(); filterConfig.setMinFileSize(500 * 1024 * 1024L);//文件最小为500M searcher.doSearch(filterConfig);
3. 搜索过程解析
由搜索类来创建的线程池, 来接受文件夹的搜索线程.
由初始设置的搜索文件夹(默认为各盘符)来创建最初线程, 搜索文件夹下各文件及文件夹.
1. 判断下一层的文件及文件夹, 如果符合搜索条件, 成功!
2.下一层每个文件夹再生成一个线程, 提交到搜索类线程池.
每次一个线程结束, 来判断线程池中是否只有一个活动的线程, 如果是, 搜索完成, 结束程序.
4. 效率
以搜索包含 "test" 字符串的文件及文件夹为例. (因为是全盘搜索, 关键字不影响效率, 条件搜索稍慢些. 文件过多时, 可以试下调整线程池大小)
Search costs(耗时) : 3372(ms)
File searched(搜索文件总数) : 151252
Folder searched(搜索文件夹总数): 30200
Success match(匹配成功数): 382
小程序比较简单, 说不定啥时候能有点用.
阅读全文
1 0
- 使用java进行本地文件全盘搜索
- 全盘搜索程序
- 全盘文件搜索
- linux 全盘搜索
- 全盘搜索文件
- 使用Java打开本地文件
- 批处理全盘高速搜索文件!
- 批处理全盘高速搜索文件
- 使用TCP/IP进行本地文件复制测试
- Everything原理及全盘搜索研究
- 电脑全盘搜索软件 Everything 强烈推荐
- 好用的全盘搜索软件Everything
- windows环境下全盘搜索特定文件
- 使用Google 进行搜索
- java开发_快速搜索本地文件_小应用程序
- 使用java代码操作本地文件--File类
- 使用java程序修改本地文件部分内容
- 使用java打开本地文件的方法
- Could not scan for classes inside "database/seeds" which does not appear to be a file nor a folde
- 双边滤波算法原理
- java常用类--object
- float浮点型数据
- Yii2
- 使用java进行本地文件全盘搜索
- 欢迎使用CSDN-markdown编辑器
- openstack【Kilo】入门 【网络篇】十三:Neutron安装配置【控制节点】
- hihocoder 1636 Pangu and Stones
- mariadb
- 电路作业
- 关于JSP中动态包含请求无法显示页面的问题 post请求页面中包含get请求
- mysql字符串比较函数
- 静默安装自己的驱动