使用 Apache Camel 删除文件

Deleting the files using Apache Camel

我刚刚尝试使用 Camel 路由将过去 10 天内修改过的文件从输入目录移动到输出目录,并且在我设置选项 delete= 时删除输入目录中的所有文件传输后是的。

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

这很好用。但现在我想做的是只保留输入目录中最近 10 天修改的文件,其余的删除。我们如何使用 Camel 来做到这一点?

Use parameter filterFile option of File component instead of filter EIP

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

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

参考:Camel File Component Camel File Language