Java版仿Everything的命令行文件搜索工具

java版仿Everything

  • 项目简介
    • 一、实现功能
    • 二、功能实现分层结构图
    • 三、功能具体实现
    • 四、运行示例
    • 五、源码

项目简介

  仿照Everything桌面工具,基于java语言开发的命令行文件搜索工具。解决了windows命令行下文件搜索问题,Linux平台下同样可以使用。主要使用的技术有java文件操作、java多线程、嵌入式H2数据库、Lombok库、文件系统监控。开发平台IDEA,Maven管理代码。

一、实现功能

Java版仿Everything的命令行文件搜索工具_第1张图片

二、功能实现分层结构图

Java版仿Everything的命令行文件搜索工具_第2张图片

三、功能具体实现

  1. 基本模型的抽象类:
    文件类型(png jpeg doc pdt exe msi jar zip rar ppt txt sh )
    索引File的属性之后的信息 Thing
    检索的参数(条件)Condition

  2. 设计数据库的表:
    创建数据库(everything_g2)
    设计数据库的表(Thing类创建的对象的属性)
    数据库的编程(DAO):
    创建数据源(DataSource) - 依赖Druid数据库连接池
    执行数据库脚本(初始化数据库)

  3. 检索功能:首先初始化数据库,然后访问数据库,使用DataSource,最后实现检索业务,在数据库中查询数据search condition。
    Java版仿Everything的命令行文件搜索工具_第3张图片

  4. 构建索引
    后台线程执行,创建一个固定大小的线程池newFixedThreadPool(),所以构建索引时用户依然可以执行检索或其他命令。
    Java版仿Everything的命令行文件搜索工具_第4张图片

  5. 拦截器
    Java版仿Everything的命令行文件搜索工具_第5张图片

  6. 文件监控系统
    只监控指定目录,不常用系统下的目录不监控。主要使用以下类的方法:
    FileAlterationListenerAdaptor
    FileAlterationMonitor
    FileAlterationObserver
    把要监控的path传入到monitor()方法中,在规定时间内监听一次。

四、运行示例

Java版仿Everything的命令行文件搜索工具_第6张图片
Java版仿Everything的命令行文件搜索工具_第7张图片

五、源码

github上自取:everything源码

你可能感兴趣的:(Java版仿Everything的命令行文件搜索工具)