文章目录

  • 项目简介
  • 应用技术
  • 项目实现
  • 项目功能
  • 项目测试
    • 性能测试
    • 兼容性测试
    • 功能测试
    • 单元测试
  • 项目扩展点

项目简介

Java-Everything是一款仿照Everything桌面工具,基于Java语言开发的文件搜索工具。通过在命令行输入文件名、文件类型搜索到本地文件。解决了Windows命令行下文件搜索慢的问题。

应用技术

  • Java基础(文件操作)
  • DataBase(嵌入式H2数据库)
  • JDBC编程
  • Lombok库(安装lombok插件)、
  • 文件系统监控(Apache Commons IO)
  • Maven管理

项目实现

  • 索引:指定目录建立索引;指定目录排查建立索引
  • 存储:程序启动时,扫描本机的文件,将文件名称、文件类型、文件路径等信息存储到数据库(嵌入式H2数据库)
  • 检索:根据条件检索内容;检索内容后置过滤(由于只监控新增,因此检索后如果内容不存在,做清理操作)
  • 监控:监控指定目录文件的新增(删除/添加),保证检索文件的准确性(考虑如果整个系统做监控,效率太低,所以只监控自定义目录)

项目功能

  • 使用help命令显示帮助界面(命令列表)
  • 使用index命令为本地文件建立索引
  • 使用search 搜索文件
  • 使用quit命令退出程序

项目测试

性能测试

  • 测试环境:Windows10操作系统
  • 处理器:Intel® Core™ i7-7500U CPU @2.70GHz 2.90GHz
  • 内存:8.00GB
  • 测试数据:本地文件系统文件数:654345
  • 文件查找效率

不建立索引查找:3101ms

建立索引查找:331ms
结论:建立索引查找效率比不建立索引查找速度快了大约10倍

  • 建立索引消耗时间:174030ms(大约3min)

兼容性测试

在Windows10下程序运行正常;
在Linux(Centos7)下运行正常。

功能测试

单元测试

模块接口测试

  • 输入的实参与形参个数是否相等;
  • 输入的实参与形参的类型是否匹配;
  • 输入的实参与形参的顺序是否一致;
  • 是否处理了输入、输出错误;

对局部数据结构进行测试

  • 变量未初始化或初始化有错;
  • 不正确的变量名;
  • 定义出来的变量只能作用在模块内部;

路径测试

  • 对if语句的多个分支进行测试;
  • 代码中for循环、while循环等的循环次数是否正确;

错误处理测试

  • 异常处理不当;
  • 输出的错误信息不清晰,难以理解;

项目扩展点

  • 搜索文件:在输入文件名时增加自动输入完成
  • 最近搜索:可以增加一个history命令搜索最近搜索信息

[项目]——文件搜索工具Java-Everything相关推荐

  1. 项目:Search_Everything(仿EveryThing的文件搜索工具)

    目录 项目总览 项目流程 项目搭建 maven项目 Database Navigator插件 类的设计和实现 Main类 resources包 app.fxml文件 init.sql文件 工具包Uti ...

  2. 嗖一下【基于命令行交互的文件搜索工具】实现思路

    目录 一.背景 二.实现功能(todo) 三.效果展示 四.分析 存储文件位置分析 存储文件内容分析 打印文件信息分析 五.实现 六.使用 七.代码实现 八.总结 九.项目测试 一.背景 有时候需要在 ...

  3. gorm preload 搜索_macOS系统本地文件搜索工具

    Find Any File Mac可以准确快速地查找本次磁盘甚至是本地隐藏磁盘上的任何文件,Find Any File Mac不使用数据库,而是使用文件系统驱动程序的快速搜索操作,包括能够搜索到通常隐 ...

  4. gorm preload 搜索_文件太多忘记了文件放在什么地方?那你可以试试这款文件搜索工具...

    忘记了文件放在什么地方?文件太多不能一下子找到?那么你也许可以试试这款软件--ProFind for mac版,这是一款适用于macOS系统的文件搜索工具,它具有强大的功能和出色的性能,可为macOS ...

  5. ls mac 显示最近修改日期_Find Any File for Mac(Mac本地文件搜索工具)

    今天小编给大家带来的Find Any File mac是Mac平台上的一款本地文件搜索查找工具,可以让你在本地磁盘上快速搜索.查找你需要的文件.甚至是隐藏文件都逃不出Find Any File mac ...

  6. python 简单检索器_python实现文件搜索工具(简易版)

    在python学习过程中有一次需要进行GUI 的绘制, 而在python中有自带的库tkinter可以用来简单的GUI编写,于是转而学习tkinter库的使用. 学以致用,现在试着编写一个简单的磁文件 ...

  7. PDF Search for Mac(PDF文件搜索工具)

    本次小编为您带来PDF Search for Mac破解版,这是Mac平台上一款可以帮助用户快速搜索文档,在Mac上从数千份文档中,快速搜索出你所需要的文档的PDF文件搜索工具!有了PDF Searc ...

  8. python实现文件搜索工具(简易版)

    在python学习过程中有一次需要进行GUI 的绘制, 而在python中有自带的库tkinter可以用来简单的GUI编写,于是转而学习tkinter库的使用. 学以致用,现在试着编写一个简单的磁文件 ...

  9. 文件搜索工具android,Search Everything下载

    在PC系统上,又一款很知名的本地文件搜索工具,名称叫做Everything,而在android平台上,也有一款如此功能的应用,它的名字叫 Search Everything,十分小巧,但是其功能却是十 ...

最新文章

  1. Visual Studio 2005 通过静态变量及可系列化的HASHTABLE变量优化工厂模式(Factory)的效率,提升性能(E8.Net工作流应用系统优化系列四)...
  2. DNS子域授权及view(三)
  3. Grid++Report问题集!
  4. 其他脚本与 asp.net 脚本一起验证时容易出的问题
  5. $.getjson异常信息提示_8种信息类型,中后台产品功能自查清单
  6. 【算法】—— 不借助中间变量实现 swap
  7. 数据分析数据可视化(四)
  8. 《学习OpenCV3》目录和全书划分
  9. 小强的HTML5移动开发之路(14)——Video标签详解
  10. 杭电复试笔记第七天--最终篇
  11. hdu 2037 今年暑假不AC 贪心)
  12. 如何把录音生成二维码,用微信扫一下就能听?分享语音音频转二维码的方法和技术原理
  13. 是什么导致了脸上的痤疮呢?
  14. VS2017设置透明主题
  15. 点球大战中的概率问题
  16. ftp 连接失败。500 OOPS: cannot change directory:
  17. MCE | 单胺能 非单胺能对抑郁症的作用
  18. “全包”给装修公司,验收时发现甲醛超标,能要求重装或赔偿吗?
  19. 什么是CDN?怎么搭建?搭建CDN需要什么软件!
  20. PEDOT:PSS/甘油酸胆碱([Ch][Glyce])离子液体混合材料

热门文章

  1. WCF 项目应用连载[6] - 升级Lig服务 - 设计ILigger 构建一个完善的Lig版本
  2. 『Ocelot』.NET开源API网关 – Ocelot详细使用及其说明(可当文档收藏使用)
  3. python易盾滑动验证码
  4. QQ飞车玩家各技术阶段
  5. 玩转华为数据中心交换机系列 | 配置基于接口划分VLAN示例
  6. linux运行vb程序,Linux可执行文件ELF结构及程序加载运行
  7. 【单片机仿真】(二十)ORG — 设置起始地址
  8. 硬盘分区不够,怎么合并分区?
  9. 提取mdx字典文件中的数据
  10. LZY的计算器(暴力)