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