解析が成功した場合は、それらを別のディレクトリ (デフォルトのディレクトリ、つまり .done ディレクトリではない) に移動します。
次の例のように使用します。
.to("file://test/readFile?autoCreate=true&moveFailed=.failed/${date:now:yyyyMMdd}/${file:name}&move=.processed/${date:now:dd-MM-yyyy}/${file:name}")
Camel のドキュメント ( 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:.."));
}
});
乾杯!