如何检查Apache Camel中是否存在文件?

时间:2016-06-28 09:42:00

标签: java apache-camel

我有下一个代码:

package camelinaction;

import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;


public class MakeNotaBeneFile {

    public static void main(String args[]) throws Exception {
        // create CamelContext
        CamelContext context = new DefaultCamelContext();

        // add our route to the CamelContext
        context.addRoutes(new RouteBuilder() {
            public void configure() {
                 from("quartz://report?cron=0/2+*+*+*+*+?")
                 .setBody().simple("\n")
                 .to("file:/c:/Users/Mishin/Documents/work_line/?fileName=${date:now:ddMMyyyy}/${date:now:ddMMyyyy}_nb.txt");
            }
        });

        // start the route and let it do its work
        context.start();
        Thread.sleep(1000);

        // stop the CamelContext
        context.stop();
    }
}

我有一个代码,用Camel创建一个目录和一个当前日期的文件 MakeNotaBeneFile.java

我的问题是如何检查我的文件是否存在? 因为当前代码会覆盖旧文件而我丢失了笔记。

1 个答案:

答案 0 :(得分:2)

请参阅camel file2 documentation中“生产者”选项下的驼峰文件组件的fileExist选项。

我相信&fileExist=Append(或Fail)之类的内容可能会对您有所帮助。

另外看看camel是否设法重命名被覆盖的文件(文档说camel 2.11.1及以上就有这种行为)。

或者,如果您想在骆驼路线中构建逻辑if,您可以随时构建一个包含以下代码的bean:return new File(filename).exists();