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

这是一个基于Java开发的命令行文件搜索工具,模仿了Everything桌面工具的功能,适用于Windows和Linux平台。利用Java文件操作、多线程、H2数据库等技术,实现了文件快速检索和索引构建,并具备文件系统监控能力。

项目简介

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

一、实现功能

在这里插入图片描述

二、功能实现分层结构图

在这里插入图片描述

三、功能具体实现

  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。
    在这里插入图片描述

  4. 构建索引
    后台线程执行,创建一个固定大小的线程池newFixedThreadPool(),所以构建索引时用户依然可以执行检索或其他命令。
    在这里插入图片描述

  5. 拦截器
    在这里插入图片描述

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

四、运行示例

在这里插入图片描述
在这里插入图片描述

五、源码

github上自取:everything源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值