文章目录
一、项目简介
仿照Everything桌面工具,基于Java语言开发的命令行文件搜索工具,用于在Windows命令行下查询一些文件,基于Java语言开发的工具可以在Windows平台和Linux平台上无差异使用。本项目使用IDEA和Maven工具开发,主要用到了Java文件操作、嵌入式H2数据库、JDBC、Lombok库、Java多线程和文件监控系统。
二、Everything功能实现分层结构图
三、功能具体实现
1.模型
文件类型(FileType 比如:img -> png jpeg jpg bmp gif bmp … )
检索条件(Condition name filetype limit order … )
Thing (name, path ,depth , filetype)
2.数据库
本地系统中的文件或者文件夹 ->Java File -> Java Thing -> 数据库中的记录Table
数据库创建(everything_g2)
数据库表的设计:
JDBC -> 数据库的驱动,数据库连接池(Druid)
3.Lombok
第一步:在maven的配置中引入Lombok库
第二步:在IDEA中安装Lombok Plugin
第三步:在IDEA中启用注解处理器
4.index索引
由后台线程执行,在构建索引时用户依然可以执行其他命令。
5.检索search
用户输入search 文件名称 文件类型名称,打印符合用户输入的检索路径。
6.文件监控系统
只监控指定目录,不常用系统下的目录不监控。主要使用以下类的方法:
FileAlterationListenerAdaptor
FileAlterationMonitor
FileAlterationObserver
把要监控的path传入到monitor()方法中,在规定时间内监听一次。