Everything
一.简介
仿照Everything桌面工具,基于Java语言开发的命令行文件搜索工具
有时候在windows命令行下需要查询一些文件,由于for命令并不如Linux下的find命令好用,所以DIY开发一款命令行工具,用来实现Windows命令行中搜索文件
二.目的
(1)解决Windows命令行下文件搜索问题
(2)基于Java开发的工具可以在Windows和Linux平台上无差异使用
(3)锻炼编码能力
三.功能
注意:不建议采用MySQL存储
四.需要的技术
(1)Java(文件操作)
(2)Database(嵌入式H2数据库或者MySQL数据库)
(3)JDBC
(4)Lombok库(IDEA安装Lombok插件)
(5)Java多线程
(6)文件系统监控(Apache Commons IO)
五.实现
六.索引
- 指定目录建立索引
- 指定目录排查建立索引(一些不经常搜索的目录,比如:windows系统的目录)
七.存储
- 嵌入式数据库H2(优势是可以随着程序一起发布)
- MySQL数据库(数据集中管理,分布式发布,安全性高)
八.监控
指定目录的文件新增(考虑整个文件系统做监控,效率太低,只监控自定义的目录)
九.交互
- 程序入口解析和配置
- 交互式执行:帮助(help),索引(index),检索(search)
十.使用
1.使用
2.命令
3.搜索
十一.测试
注意:有索引会影响数据的写入;有索引检索效率有较大幅度的提升
十二.扩展
- 检索文件:项目中检索文件是采用文件名的后模糊匹配
(1)在输入时增加自动完成
(2)在输入拼音是也可以进行搜索 - 最近检索:项目扩展点,可以增加一个如history的命令用来查看最近检索信息
- 内置JRE发布即可使用
实现过程