Java 在ftp上移动文件

Java 在ftp上移动文件,java,ftp,apache-camel,Java,Ftp,Apache Camel,我正在使用apachecamel-Spring框架。我有一个组件FTP(从FTP获取文件)和Bean(处理文件并将其存储在数据库中)。我所缺少的是,当我处理这些文件并将其存储在数据库中时,我必须检查插入或更新是否成功(这也起作用)。如果操作成功,我必须将文件移动到ftp上的另一个文件夹,如果操作失败,我必须将其移动到ftp上的另一个文件夹 所以我想问的是,是否有一种简单的方法可以将文件从位置dirA复制到dirB您需要知道的一切都在这里 搜索移动和移动失败 如果插入不成功,您可能会抛出错误。然后

我正在使用apachecamel-Spring框架。我有一个组件FTP(从FTP获取文件)和Bean(处理文件并将其存储在数据库中)。我所缺少的是,当我处理这些文件并将其存储在数据库中时,我必须检查插入或更新是否成功(这也起作用)。如果操作成功,我必须将文件移动到ftp上的另一个文件夹,如果操作失败,我必须将其移动到ftp上的另一个文件夹


所以我想问的是,是否有一种简单的方法可以将文件从位置dirA复制到dirB

您需要知道的一切都在这里 搜索
移动
移动失败

如果插入不成功,您可能会抛出错误。然后,Camel将文件移动到指定的文件夹中

ftp://10.10.10.10/toRead?move=inDB&moveFailed=notInDB

由于我没有您的代码,我将通过展示我将如何处理此类情况来回答:

根据bean处理的结果制作两条单独的路由

from("{{your.ftp.source}}")
    .bean( new ProcessAndStoreFileBean())
    .choice()
        .when(property("fileProcessingResult").equalsTo(true))
            .to("ftp://yourserver/Destination/Folder/Success")
        .otherwise()
            .to("ftp://yourserver/Destination/Folder/Failure")
    .end();
在Bean方法中,我只需要做:

class ProcessAndStoreFileBean {

    @Handler
    public void processAndSaveInDb(Exchange exchange){

        // many line to do the job...

        if( success ) 
            exchange.setProperty("fileProcessingResult", true);
        else{
            exchange.setProperty("fileProcessingResult", false);
    }
}

骆驼路线很简单。FTP->Bean。Bean获取消息(来自FTP的文件)并将其插入数据库。我可以检查插入是否成功,我只需要知道如何将文件从一个文件夹移动到另一个文件夹。例如:读取位置上的文件_ftp://10.10.10.10/toRead/somefile.csv ->处理它并将其存储在数据库->将其移动到_ftp://10.10.10.10/inDB/ (这是我缺少的部分)。我想这是我能提供的最好的解释。我希望你能理解,这是一个失败的选择-