Java Camel:GenericFileFilter和Recursive不能一起工作

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

我正在尝试使用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>{
    @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