【发布时间】:2016-11-09 00:02:50
【问题描述】:
我想使用 Apache camel 读取 FTP 文件,但我的要求是选择 4-5 个文件周围的所有文件并处理它们,但我的问题是我如何才能只为特定日期选择文件,例如我想选择所有今天创建的文件离开昨天的文件。
如何编写代码以使用 apache camel 从 FTP 中选择文件并过滤日期
【问题讨论】:
标签: apache-camel
我想使用 Apache camel 读取 FTP 文件,但我的要求是选择 4-5 个文件周围的所有文件并处理它们,但我的问题是我如何才能只为特定日期选择文件,例如我想选择所有今天创建的文件离开昨天的文件。
如何编写代码以使用 apache camel 从 FTP 中选择文件并过滤日期
【问题讨论】:
标签: apache-camel
你可以实现你的自定义过滤器并让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
【讨论】: