一、項目簡介
仿照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()方法中,在規定時間內監聽一次。