如何使用apache camel在文件组件上使用fileName
获取多个文件。这是我的路线:
sftp://ftpserver:22/?username=blah&password=blah&stepwise=false&useList=false&ignoreFileNotFoundOrPermissionError=true&fileName=${file:onlyname.noext}.txt&delete=true&doneFileName=done")
ftp服务器上的文件是1.txt
,2.txt
,3.txt
。如何在不必执行fileName
等固定fileName=3.txt
的情况下检索所有这些内容?
答案 0 :(得分:1)
您可以使用fileName
中的Simple expression language来提供名称模式。旧文档页面http://camel.apache.org/file-language.html
在您的情况下,使用fileName=*.txt
就足够了。
答案 1 :(得分:1)
使用include
选项,例如:
include=.*\\.txt
include
使用Java正则表达式。
或者,您可以使用antInclude
:
antInclude=*.txt
修改强>
antInclude
可能包含多个文件名:
antInclude=1.txt,2.txt
(至少这适用于本地文件。)
修改强>
如果您不允许在FTP服务器上列出,则必须为每个文件设置路由:
for (int i = 0; i < 10; i++) {
from("sftp://ftpserver:22/?fileName=${file:onlyname.noext}."+i+".txt")
...;
}
但是,根据文件的数量,这不是我想做的事情。