如何拆分文件并将数字添加到输出文件名(不覆盖)

时间:2014-10-27 17:14:33

标签: apache-camel

我有一条将大文件拆分成较小文件的路由。应将所有拆分文件写入同一目录。文件端点(生产者)的默认行为似乎总是覆盖。 是否有一种简单的方法可以让文件生成器通过向文件名添加计数器来进行简单的重命名?就像在操作系统中一样,如果你复制/粘贴文件,操作系统通过添加(copy-1 ...)自动重命名。

1 个答案:

答案 0 :(得分:1)

您可以使用spliter CamelSplitIndex属性,并使用生成器的fileName选项中的简单表达式添加拆分索引,如下面的此路由中所示。

 from("file:data/inbox?")
    .split(body(String.class).tokenize("\n"))
    .to("file:data/outbox/?fileName=${file:name.noext}-${property.CamelSplitIndex}.csv");

所以对于4行输入csv test.csv, 产生的输出将是

测试0.csv 测试1.csv 测试2.csv 测试3.csv

有关拆分索引的详细信息,请查看https://camel.apache.org/splitter.html

以及https://camel.apache.org/simple.html

中的简单表达式