一旦被camel处理,如何在FTP上重命名和移动文件?

一旦被camel处理,如何在FTP上重命名和移动文件?,ftp,apache-camel,Ftp,Apache Camel,我的ftp上有几个文件夹: /csv /xml /processed /.... 在将每个文件从file.csv处理到file.done并将其移动到已处理文件夹后,如何重命名和移动该文件? 我尝试了很多选项,比如在“from”中添加大量参数,或者在onCompletion中添加一些内容,或者添加多条路径来移动文件。 所有占位符都包含正确的值,并由Spring处理 <route> <from uri="ftp://{{ftp.user}}@{{ftp.s

我的ftp上有几个文件夹:

/csv
/xml
/processed
/....
在将每个文件从file.csv处理到file.done并将其移动到已处理文件夹后,如何重命名和移动该文件? 我尝试了很多选项,比如在“from”中添加大量参数,或者在onCompletion中添加一些内容,或者添加多条路径来移动文件。 所有占位符都包含正确的值,并由Spring处理

<route>
            <from uri="ftp://{{ftp.user}}@{{ftp.server}}/{{inbound.csv}}?password={{ftp.pass}}&amp;binary=true&amp;include=.*csv"/>
            <onCompletion onCompleteOnly="true">
                <to uri="ftp://{{ftp.user}}@{{ftp.server}}/{{outbound.csv}}?password={{ftp.pass}}&amp;doneFileName=${file:name}.done"/>
            </onCompletion>
            <delay>
                <constant>15000</constant>
            </delay>
            <unmarshal><csv/></unmarshal>
            <to uri="bean:cSVHandler?method=process"/>
        </route>

15000

请帮忙

使用移动选项,该选项将在文件处理后移动/重命名文件

<from uri="ftp://{{ftp.user}}@{{ftp.server}}/{{inbound.csv}}
      ?password={{ftp.pass}}&amp;binary=true&amp;include=.*csv
      &amp;move=../processed"/>

这将把文件移到../processed目录中


有关移动选项的更多详细信息,请参见

使用移动选项,该选项将在文件处理后移动/重命名文件

<from uri="ftp://{{ftp.user}}@{{ftp.server}}/{{inbound.csv}}
      ?password={{ftp.pass}}&amp;binary=true&amp;include=.*csv
      &amp;move=../processed"/>

这将把文件移到../processed目录中


有关移动选项的更多详细信息,请参见

如果有人找到此帖子,并且只想重命名该文件,您可以添加

&move=${headers.CamelFileName}.old

如果有人找到此帖子并且只想重命名该文件,您可以添加

&move=${headers.CamelFileName}.old

嗨,克劳斯,谢谢你的回复。成功了。然后我仔细扫描了文件2,发现在ftp上,文件只能像你写的那样使用相对路径移动,而不是像我以前想的那样使用绝对路径。再次感谢。嗨,克劳斯,谢谢你的回复。成功了。然后我仔细扫描了文件2,发现在ftp上,文件只能像你写的那样使用相对路径移动,而不是像我以前想的那样使用绝对路径。再次感谢。