如果解析成功,则将它们移动到不同的目录(不是默认目录,即 .done 目录)
使用类似这个例子的东西:
.to("file://test/readFile?autoCreate=true&moveFailed=.failed/${date:now:yyyyMMdd}/${file:name}&move=.processed/${date:now:dd-MM-yyyy}/${file:name}")
从骆驼文档(FTP/SFTP/FTPS 组件):
默认情况下,FTP 使用者将在远程 FTP 服务器上保留已使用的文件不变。如果您希望它删除文件或将它们移动到另一个位置,则必须明确配置它。例如,您可以使用 delete=true 删除文件,或使用 move=.done 将文件移动到隐藏的 done 子目录中。常规文件使用者不同,因为它默认将文件移动到 .camel 子目录。Camel 默认不为 FTP 使用者执行此操作的原因是,默认情况下它可能缺少移动或删除文件的权限。
所以你可以使用例如:
&noop=false
&move
&delete=false
编辑:
我认为你应该想出这样的东西(下面的代码),因为 pollEnrich() 不适合这种情况。
(强烈建议不要使用以下代码,而不是使用示例)
from("direct:scan")
.process(new Processor()
{
public void process(Exchange exchange) throws Exception
{
ConsumerTemplate consumerTemplate = exchange.getContext().createConsumerTemplate();
ProducerTemplate producerTemplate = exchange.getContext().createProducerTemplate();
producerTemplate.setDefaultEndpointUri("file:..");
producerTemplate.send(consumerTemplate.receive("ftp:.."));
}
});
干杯!