目录
1 项目简介
FileSeeker是一款Windows上的文件搜索工具。用户可以通过在命令行输入文件名、文件类型来搜索到本地文件。同时,该工具还支持用户自定义检索文件的数量、对指定目录忽略检索、实时监控文件变化等功能。解决了Windows下搜索速度慢的问题。
2 项目源代码
https://github.com/better12038/fileSeeker
3 相关技术
- JavaSE基础
- 异常处理机制
- JDBC编程
- 多线程
- Lombok库(IDEA安装Lombok插件)
- 嵌入式数据库H2、MySQL数据库
- 文件系统监控(Apache Commons IO)
- Maven管理
4 实现原理
Windows下搜索文件或文件内容用的是普通的文件系统遍历查找。在查找文件时,我们能明显感受到速度很慢。
为了提高文件搜索的效率,FileSeeker采取的方法是:
- 程序启动时,扫描本机的文件系统,将文件名称、文件路径、文件类型等信息存储在FileSeeker的数据库中。
- 为数据库添加索引。在进行文件查找时,直接查询数据库中的记录,提高查找效率。
- 但如果本地文件系统发生变更,数据库中的记录也必须即使变更。因此在程序运行过程中,FileSeeker会监控本地文件系统的变更(文件添加/删除等操作),如果文件系统中的文件发生变更,FileSeeker会更新它的数据库,保证查询结果的准确性。
5 项目架构图
6 项目功能
序号 | 功能 | 功能介绍 |
1 | 查找(search命令) | 1. 输入:search <文件名> [file_type] 2. 根据条件查找出对应的文件路径 |
2 | 索引(index命令) | 对指定目录建立索引 |
3 | 帮助(help命令) | 使用手册 |
4 | 退出(quit命令) | 退出该工具 |
5 | 存储 | 将文件信息存入MySQL数据库 / H2数据库 |
6 | 监控 | 对指定目录下的文件做监控 |
7 测试报告
7.1 测试用例
7.2 测试环境
软件环境 | 操作系统:Windows10、Linux(Centos7) |
硬件环境 | PC机1台,处理器:Intel(R) Core(TM) i5-7200U CPU @2.50GHz 2.71GHz;内存4.0GB |
本地文件数 | 56万左右 |
7.3 测试结论
7.3.1 功能测试
依照测试用例对项目的基本功能进行测试,在这里就不赘述了。
7.3.2 性能测试
测试数据:本地文件系统文件数:564107
1)文件查找效率
采用H2数据库(不建立索引):3024ms
采用H2数据库(建立索引):424ms
2)建立索引消耗时间:174030ms(大约3min)
7.3.3 兼容性
在Windows10下程序运行正常;
在Linux(Centos7)下运行正常。
7.3.4 容错性
能屏蔽用户的误操作,输入错误数据时,系统不崩溃、不异常退出也不丢失数据
8 项目演示
1. 查找文件功能(使用search命令)
search <filename> [<filetype> doc | img I bin I archive I achive]
如:search java img
查找结果如下: