23.15. 使用完成的文件
另请参阅下面 写完成的文件 部分。
如果您只想在文件存在时消耗文件,您可以在端点上使用 doneFileName 选项。
from("file:bar?doneFileName=done");
from("file:bar?doneFileName=done");
如果与目标文件位于同一个目录中,将仅使用 bar 文件夹中的文件。在完成使用文件时,Camel 将自动删除该操作的文件。如果配置了 noop=true,则 Camel 不会自动删除 完成的文件。
但是,更常见的是每个 目标文件有一个文件。这意味着有 1:1 关联。要做到这一点,您必须在 doneFileName 选项中使用动态占位符。目前,Camel 支持以下两个动态令牌: file:name 和 file:name.noext,它必须包括在 $\{ } 中。使用者只支持将完整 文件名 作为前缀或后缀(不支持两者)的静态部分。
from("file:bar?doneFileName=${file:name}.done");
from("file:bar?doneFileName=${file:name}.done");
在本示例中,如果存在带有名称文件名 .done 的完整文件,则仅轮询 文件。例如:
-
hello.txt- 是要使用的文件 -
hello.txt.done- 是关联的完成文件
您还可以为 done 文件使用前缀,例如:
from("file:bar?doneFileName=ready-${file:name}");
from("file:bar?doneFileName=ready-${file:name}");
-
hello.txt- 是要使用的文件 -
ready-hello.txt- 是关联的完成文件