Laver 文件版本遍历器
系统简介
最近有个需求,需要罗列出各个目录中文件的信息,检索各类文件的最新版本。网上看了很多方式,但发现没有合适的。于是利用空余时间开始编写了一套文件遍历系统,如此便有了Laver(紫菜)。Laver遵从简单好用的原则,用户友好的UI界面。且所有代码基于Java,每一个自定义的类与方法都有详尽的纯中文注释信息,方便二次开发。
Laver,最初起自Lastest Version,发现两者结合后正好是我喜欢的蔬菜之一。缘,妙不可言。
功能演示

功能说明
- 遍历目录:可以对选中的根目录进行深度遍历,检索出所有的文件及其父目录与完整路径信息。
- 格式限定:支持对需要检索的文件格式进行限定,内置常用的文档格式(WPS,PDF等),且支持用户自定义格式。
- 检索深度:支持对深度进行限定,当检索深度为1时,可检索根目录下一层目录的所有文件
- 检索模式*:(当前正在开发中)支持对检索方式进行定义,系统自带匹配文件名中带有ver,_v,Ver等版本标识符的字符串,对其后面的版本号进行分析,只列出最新版本的文件。或者用户自定义的其他类型字符串。
- 检索结果可排序:对检索的结果可以根据字典顺序迅速找到你需要查找的文件,适用于文件找不到的情况。
- 检索结果可导出:检索到的信息可以生成Excel,方便文档归档与后续分类
快速开始
你可以通过git下载可执行的exe文件。下载链接为http://www.github.com/heicaijun/Laver/release,让我们通过简单的学习开始使用吧!
基础功能使用
- 首先设定需要扫描的根目录,选择你需要扫描的文件夹。

- 选定你需要扫描的文件类型,勾选all选项以列出所有类型文件。也可以用系统筛选出wps,pdf等常用的文件类型,你甚至可以选择other选项自定义要扫描的格式

- 设定需要扫描的深度,0代表无限层(由于其底层算法为递归,所以请避免检索文件过多的根目录,或通过扫描格式与扫描深度来限制,以免程式卡死),输入120可以扫描根目录下的120级子目录

- 点击开始扫描即可运作,扫描到的结果将会列入到下方的表格中。

- 点击导出结果至Excel按钮可以将扫描到的内容保存到Excel中,方便后续使用Excel工具来处理扫描数据。

高级功能使用
如您对如下表述存在疑问,则不建议使用这些功能。您可以通过留言提出疑问
- 扫描的格式可以是用户自定义的格式,方便用户列出自己需要检索但系统未自带的特殊格式文件,用户可以在其他格式框内输入用逗号隔开的多个文件后缀名,比如用户可以在框内输入"cad,psd,png,gif"来检索出所有需要的图片。

- 扫描的模式可以选择三种不同的模式
| 扫描模式 | 描述 |
|---|---|
| 全扫描 | 即无论是什么版本的文件都会将之全部扫描出来 |
| 最新版本模式 | 系统自带的规则,可以根据文件名中的[version,ver,v]这三种版本标识符来整理出版本号,并过滤掉旧版本 |
| 自定义规则 | 你可以在输入框中输入用英文逗号隔开的版本标识,诸如[ 版本,文档,spec ]。 |
需要注意的是,版本标识符特指文件名中可以明显区分版本号的字符,比如文件Sample File Ver_1.0.1.xlsx标本标识符即为ver,不难发现自ver到文件末尾均为数字与连接字符。所以版本标识符到文件末尾不允许出现除数字与通用的连接符(诸如:_ ( ) [ ] - ( ) 等)外的其他任何字符。否则系统将无法判断文件是否为同一文件的不同版本。

开发指南
如果你想要学习、开发、修改或自行构建Laver,可以依照下面的指示:
- 掌握基础的java知识(尤其是java.util.IO类)
- 掌握Swing开发,熟悉WindowBuilder插件的使用
- 熟悉git版本管理工具的使用,至少会pull操作。
环境搭建
基础开发环境
jdk版本至少为1.7,开发工具建议Eclipse,网上教程很多,这里不赘述。如选择IDEA请对应安装JFormDesigner插件(收费插件)
WindowBuilder插件安装
考虑到国内用户下载国外源的时候会报错,所以建议使用国内源下载
- 进入 WindowBuilder 的官网 : https://www.eclipse.org/windowbuilder/download.php。
- 选择 1.9.3 的 link , 右键点击,复制连接地址:http://download.eclipse.org/windowbuilder/1.9.3/ , 这个是官方提供的下载源。

- 将官方下载源修改为国内的:
| http://download.eclipse.org/windowbuilder/1.9.3/ |
|---|
| http://mirror.bit.edu.cn/eclipse/windowbuilder/1.9.3/ |
- 依次点开Help ->Install New Software

- 点击Add...按钮 ,将国内源:http://mirror.bit.edu.cn/eclipse/windowbuilder/1.9.3/ 复制到Location框中,Name可以随便起,这里起WindowBuilder,然后点击Add

- 点击 Select All , 点击 *next* 开始下载。路上一路狂点Next即可

- 最后点击I Accept 表示接受,并点击Finish即可等待安装完成。

Laver 文件版本遍历器的更多相关文章
- HTML5文件上传器,纯脚本无插件的客户端文件上传器---Uploader 文件上传器类
概述 客户端完全基于JavaScript的 浏览器文件上传器,不需要任何浏览器插件,但需要和jQuery框架协同工作,支持超大文件上传,其算法是将一个超大文件切片成N个数据块依次提交给服务 端处理,由 ...
- 疑问:Iterator 遍历器和数据集合各种遍历方法的区别
https://es6.ruanyifeng.com/#docs/iterator Iterator(遍历器)的概念 Iterator 接口主要供for...of消费 Iterator 的遍历过程是: ...
- Java有根儿:Class文件以及类加载器
JVM 是Java的基石,Java从业者需要了解.然而相比JavaSE来讲,不了解JVM的一般来说也不会影响到工作,但是对于有调优需求或者系统架构师的岗位来说,JVM非常重要.JVM不是一个新的知识, ...
- 自制C#版3DS文件的解析器并用SharpGL显示3DS模型
自制C#版3DS文件的解析器并用SharpGL显示3DS模型 我已经重写了3ds解析器,详情在此(http://www.cnblogs.com/bitzhuwei/p/CSharpGL-2-parse ...
- lua使用io.open跨平台文件夹遍历匹配查找
-- Desc :实现在LUA_PATH中的lua文件中遍历寻找没用到PNG_PATH路径下的png图片,并将其打印出来. -- Date :12:49:28 2014-09-04 1 print(& ...
- Iterator遍历器 调用Symbol.Iterator属性,遍历器对象。
Iterator实现原理 创建一个指针对象,指向当前数据结构的起始位置.也就是说,遍历器对象本质上,就是一个指针对象. 第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员. 第二次调 ...
- ORA-00214: control file 控制文件版本不一致
故障现象:今日学习oracle控制文件移动和修改,发现本机安装oracle数据库启动时只使用了一个控制文件.如下:SQL> select * from V$controlfile; STATUS ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
- 文件MD5查看器工具与源码实现及下载
由于工作中经常需要查看文件的MD5值,先前网上找了几个MD5值查看工具,但基本都是选择文件,还没有复制功能,于是今天我就自己编写了个MD5查看工具,支持文件拖拽查看,并可以复制功能. 由于本工具比较小 ...
随机推荐
- 将Darknet编译成API形式的so文件
Makefile: GPU= CUDNN= OPENCV= OPENMP= DEBUG= ARCH= -gencode arch=compute_30,code=sm_30 \ -gencode ar ...
- 关于H标签 DL DT DD标签的一个小故事
看了一篇关于SEO论坛的论文,大概故事内容是:一个专业的销售公司,里面SEO 技术多多,可就是销售网站的SEO的情况极为恼火.这天,老板又招到了一个SEO,直接聘为SEO主管全权负责网站的SEO,并 ...
- Redis+Kafka异步提高并发
Redis+Kafka异步提高并发 Redis+Kafka异步提高并发 设计 实现 提交请求接口 Kafka消费队列 异步处理Service 客户端轮询获取结果 Redis集群节点配置 KafKa集群 ...
- 企业站如何做长尾关键词seo优化
http://www.wocaoseo.com/thread-315-1-1.html 很多企业站,优化到一定程度后网站的流量很快就上去了,但是之后网站就无法更进一步.那么对于普通中小型企业站 ...
- C语言中存储多个字符串的两种方式
C语言中存储多个字符串的两种方式 方式一 二维字符串数组 声明: char name[][] = { "Justinian", "Momo", " ...
- CefSharp如何判断页面是否加载完
问题:CefSharp如何判断页面是否加载完毕. 摘要:相信C#用CefSharp做浏览器来发的应该有很多人都会有遇到这个问题.特别是要执行JavaScript的时候,涉及到跨页面的JavaScrip ...
- URL的字符编码
摘要: 在通过URL访问HTTP SERVER的时候,通常会产生trace callback的异常,返回505的错误," VERSION IS NOT SUPPORTED ?" , ...
- String painter (区间dp)
There are two strings A and B with equal length. Both strings are made up of lower case letters. Now ...
- docker打包项目
nginx镜像制作实战 docker容器的主业 docker理念里,容器启动时,应当为它指定主业是什么,如nginx容器主业就是nginx代理服务,tomcat容器就是web服务等等 1.容器创建时, ...
- [Java数据结构]Map的contiansKey和List的contains比较
Map的containskey方法使用哈希算法查找key是否存在,运算时间是常数: List的contains方法是将元素在列表中遍历,运算时间和列表长度有关. 我使用两种不同SQL语句获取两种不同类 ...