首页 > 解决方案 > 使用 Apache Camel 删除文件

问题描述

我刚刚尝试了一条骆驼路线,将过去 10 天内修改的此类文件从输入目录移动到输出目录,并且在从输入目录传输所有文件后,当我设置选项 delete=true 时,删除所有文件。

Date tenDaysBack = new Date(System.currentTimeMillis() - 10*8640000);
from("file:data/input?noop=true")
    .filter(header("CamelFileLastModified").isGreaterThan(tenDaysBack))
    .to("file:data/output");

这工作得很好。但现在我要做的是将过去 10 天内修改的文件仅保留在输入目录中,并删除其余文件。我们如何使用骆驼来做到这一点?

标签: javaapache-camel

解决方案


使用 File 组件的参数filterFile选项而不是过滤 EIP

要查找超过 10 天的文件,请尝试filterFile=${date:file:yyyyMMddHHmm} <= ${date:now-240h:yyyyMMddHHmm}

  • ${date:file:yyyyMMddHHmm}- 文件最后修改时间(最多分钟级别)
  • ${date:now-240h:yyyyMMddHHmm}- 当前负 10 天的时间(最高分钟级别)

参考:骆驼文件组件 骆驼文件语言


推荐阅读