Java Camel:GenericFileFilter和Recursive不能一起工作
我正在尝试使用camel从FTP服务器下载几个文件 我使用的是recursive=true选项和include=…xlsx |…xlsm选项 我的端点如下所示:Java Camel:GenericFileFilter和Recursive不能一起工作,java,apache-camel,integration,Java,Apache Camel,Integration,我正在尝试使用camel从FTP服务器下载几个文件 我使用的是recursive=true选项和include=…xlsx |…xlsm选项 我的端点如下所示: from(FTP_OPTION + "?include=.*.xlsx|.*.xlsm&recursive=true") .to(ANOTHER_ENDPOINT); public class MyFilter <T> implements GenericFileFilter<T>{ @Over
from(FTP_OPTION + "?include=.*.xlsx|.*.xlsm&recursive=true")
.to(ANOTHER_ENDPOINT);
public class MyFilter <T> implements GenericFileFilter<T>{
@Override
public boolean accept(GenericFile<T> file) {
String name = file.getFileName();
final String regex = "[\\w,\\s-ñÑ]+\\.(xlsx|xlsm)";
return name.matches(regex);
}
}
这工作正常,但现在我需要一个功能更强大的过滤器,所以我使用的是通用文件过滤器
我的过滤器如下所示:
from(FTP_OPTION + "?include=.*.xlsx|.*.xlsm&recursive=true")
.to(ANOTHER_ENDPOINT);
public class MyFilter <T> implements GenericFileFilter<T>{
@Override
public boolean accept(GenericFile<T> file) {
String name = file.getFileName();
final String regex = "[\\w,\\s-ñÑ]+\\.(xlsx|xlsm)";
return name.matches(regex);
}
}
问题是当我使用这个端点时,只从根级别获取文件,而不在子目录中查找文件
过滤器和递归之间是否存在某种不兼容?或者我错过了其他的选择
谢谢 AFAIR通用过滤器也用于目录,因此您需要对此进行检查,并为要接受的目录返回true。有一种
isDirectory
方法可用于了解,如果您只需要所有dir,则返回true