fileName用于检索多个文件名

时间:2014-11-14 03:06:56

标签: apache-camel

如何使用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.txt2.txt3.txt。如何在不必执行fileName等固定fileName=3.txt的情况下检索所有这些内容?

2 个答案:

答案 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")
        ...;
}

但是,根据文件的数量,这不是我想做的事情。