Apache camel fileName以检索多个文件名

Apache camel fileName以检索多个文件名,apache-camel,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.txt,

如何让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=3.txt

您可以使用
文件名
中的来提供名称模式。旧文档中有一些示例第页


在您的情况下,使用
fileName=*.txt

就足够了,使用
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")
        ...;
}
for(int i=0;i<10;i++){
从(”sftp://ftpserver:22/?fileName=${file:onlyname.noext}.+i+“.txt”)
...;
}

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

添加了此路由->sftp://myftp.com:22/?username=test&password=test&fileName=*.txt.&delete=true&doneFileName=done->并且它不工作。似乎我无法让它工作,除非它是一个固定字符串。sftp服务器在出现时给了我一个错误l是一个目录列表,这就是为什么我要给它一个固定文件名列表的原因。@user301693你是对的,我在考虑一个特例,我用简单的语言来表示复杂的动态文件名。@Peter有一个正确的答案,你必须用正则表达式来使用
include
。这或多或少是ftp调用后的一个过滤器在目录中创建一个列表。我试图避免创建列表,因为我没有权限。试图告诉sftp只查找这些文件集。如果筛选不正常,那么我想你需要指定每个文件名。我想我的问题是如何做到这一点?你真的不能->fileName=1.txt、2.txt、3.txt等等……我也注意到了ed说你不能->fileName=*.txt->有什么想法吗?@user301693也许你可以使用
antInclude=1.txt,2.txt
。但是,我无法测试它,因为我手头没有FTP服务器。尝试过->antInclude=1.txt,2.txt,它可以只选择那些txt文件,但FTP仍然在目录上列出一个列表。如果我能告诉camel他,那就好了re是一组文件,只查找它们而不必列出。例如,fileName=1.txt、2.txt等。。。