文件扫描器
项目中使用到了操作日志上传,因此将日志收集封装成了一个小模块。以达到快速收集文件、裁剪,以及其他后续处理的目的。代码结构比较简单。
如何使用?
-
首先确保要扫描的目录具备权限
-
收集文件只需执行如下代码:
val list : List<File> = FileScanner(filter).scan(directory); // 返回扫描的结果
-
需要删除不必要的文件?执行如下代码:
val result : List<File> = FileCleaner().clean(list); // 返回剩余的文件
支持功能:
-
支持收集特定格式的文件,如果有特殊要求,实现一个 FileFilter,指明要过滤的文件类型。如:
- 收集
.xlog
文件的过滤器 LogFileFilter - 收集所有文件的过滤器 NoneFileFilter
- 收集
-
支持对收集后的文件进行删除,目前已有两种默认的删除实现,也可以实现自己的删除逻辑。
-
按照截止时间删除的规则 DeadlineFileCleaner
-
收集最近 8 天的日志,并尽量小于 15M 的规则 AutoFileSizeCleaner
-
其他自定规则请实现 FileCleaner
-