基于Java语言开发的仿Everything命令行文件搜索工具

文章目录

      • 一、项目简介
      • 二、Everything功能实现分层结构图
      • 三、功能具体实现
        • 1.模型
        • 2.数据库
        • 3.Lombok
        • 4.index索引
        • 5.检索search
        • 6.文件监控系统
      • 四、运行结果示例
      • 五、源码

一、项目简介

  仿照Everything桌面工具,基于Java语言开发的命令行文件搜索工具,用于在Windows命令行下查询一些文件,基于Java语言开发的工具可以在Windows平台和Linux平台上无差异使用。本项目使用IDEA和Maven工具开发,主要用到了Java文件操作、嵌入式H2数据库、JDBC、Lombok库、Java多线程和文件监控系统。

二、Everything功能实现分层结构图

基于Java语言开发的仿Everything命令行文件搜索工具_第1张图片

三、功能具体实现

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)
 数据库表的设计:
基于Java语言开发的仿Everything命令行文件搜索工具_第2张图片
 JDBC -> 数据库的驱动,数据库连接池(Druid)

3.Lombok

 第一步:在maven的配置中引入Lombok库
 第二步:在IDEA中安装Lombok Plugin
 第三步:在IDEA中启用注解处理器

4.index索引

 由后台线程执行,在构建索引时用户依然可以执行其他命令。
基于Java语言开发的仿Everything命令行文件搜索工具_第3张图片

5.检索search

 用户输入search 文件名称 文件类型名称,打印符合用户输入的检索路径。

基于Java语言开发的仿Everything命令行文件搜索工具_第4张图片

6.文件监控系统

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

四、运行结果示例

基于Java语言开发的仿Everything命令行文件搜索工具_第5张图片

基于Java语言开发的仿Everything命令行文件搜索工具_第6张图片

五、源码

github链接:https://github.com/Chole1998/everything_g2.git

你可能感兴趣的:(项目)