我想使用Apache camel阅读FTP文件,但我的要求是选择4-5个文件周围的所有文件并处理它们但我的问题是我如何才能选择仅针对特定日期的文件示例我想选择所有文件今天创建的文件将离开昨天的文件。
我如何编写代码来使用带有过滤日期的apache camel从FTP中选择文件
答案 0 :(得分:0)
您可以实现自定义过滤器并要求camel仅处理满足过滤器的文件
例如:
public class DateFilter<T> implements GenericFileFilter<T> {
public boolean accept(GenericFile<T> file) {
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
long todayInMillis = c.getTimeInMillis();
return file.getLastModified() >= todayInMillis;
}
}
将FileFilter定义为bean
<bean id="dateFilter" class="com.something.DateFilter"/>
在路线中使用上述过滤器
from("ftp://someuser@someftpserver.com?password=secret&filter=#dateFilter")
.to("somedestination")
文档here