Flume-ng-1.3.0 spooling source的方式增加了对目录的递归检测的支持
来源:互联网 发布:现在的淘宝店好做吗 编辑:程序博客网 时间:2024/06/06 00:07
原有的spooling source的方式只支持一级目录的文件变动的检测,修改了一下源码支持对目录的递归检测,可以支持多级目录下的文件变动
SpoolingFileLineReader类增加以下下方法
/**
* add by yangbutao
*
* @param files
* @param dir
* @param filter
*/
private void listDirFiles(List<File> files, File dir, FileFilter filter) {
File[] childs = dir.listFiles(filter);// 列出目录下所有的文件
for (int i = 0; i < childs.length; i++) {
if (childs[i].isFile()) {
files.add(childs[i]);
} else {
if (childs[i].isDirectory()) {
listDirFiles(files, childs[i], filter);// 如果是个目录,就继续递归列出其下面的文件.
}
}
}
}
修改getNextFile方法
private Optional<FileInfo> getNextFile() {
/* Filter to exclude finished or hidden files */
FileFilter filter = new FileFilter() {
public boolean accept(File pathName) {
if ((pathName.getName().endsWith(completedSuffix))
|| (pathName.getName().startsWith("."))) {
return false;
}
return true;
}
};
// List<File> candidateFiles =Arrays.asList(directory.listFiles(filter));//注释掉原有的
List<File> candidateFiles = new ArrayList<File>();//新增的
listDirFiles(candidateFiles, directory, filter);//新增的
- Flume-ng-1.3.0 spooling source的方式增加了对目录的递归检测的支持
- Flume的Spooling Directory Source支持Sub-directories
- Flume学习12_Flume Spooling directory source读取文件格式的要求
- SqlDbx 增加了对PostgreSQL的支持
- source insight 增加对lua语言的支持配置
- VC6.0增加对GDI+支持的配置方式
- flume-ng开发自己的source两种方法
- Flume Source对多行的处理
- 【Flume】【源码分析】深入flume-ng的三大组件——source,channel,sink
- 【Flume】【源码分析】深入flume-ng的三大组件——source,channel,sink
- 【Flume】【源码分析】深入flume-ng的三大组件——source,channel,sink
- Flume-ng spoolDir目录监控踩过的坑
- Flume OG 与 Flume NG 的对比
- flume ng 和flume og的区别
- flume-ng与flume-og的区别
- Flume-og和Flume-ng的变化
- Flume OG和Flume NG的区别
- ESRI增加了对OGC WMS的支持
- (转)Android游戏开发之处理音乐与音效太鼓达人游戏原理(二十一)
- Flex中處理窗口大小變化
- IOS开发(5)之UISegmentedControl控件
- 两个简单例子揭示makefile中“=”和“:=”的区别
- c++开发小技巧
- Flume-ng-1.3.0 spooling source的方式增加了对目录的递归检测的支持
- 对指针进行初始化中的若干问题的思考与反思
- sqlserver子父查询
- Ibaits输出sql语句
- 求数组里面仅仅出现一次的数字的个数
- java.net.UnknownHostException 的问题
- Android 获取网络流量信息
- PAMIE TypeError: getElementsByTagName() takes exactly 1 positional argument (2 given)
- 静态成员函数