使用 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 路由将过去 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天(达到分钟级)