在我的Spring Camel应用程序中,我尝试根据destinationFolder
属性移动或删除文件。如果为destinationFolder=null
,我希望删除该文件。如果为destinationFolder!=null
,我希望将文件移动到destinationFolder
。
String destinationFolder;
//In the Camel routeBuilder:
from("file://C:/folder1?move=" + destinationFolder)
在destinationFolder为null时会发生什么?文件会移动到默认位置吗?
当我将destinationFolder = null设置为空时,我看到该文件已在folder1中删除。
答案 0 :(得分:0)
首先,您应该知道何时使用“ move”,“ delete”和“ noop”以及如何在Apache camel中使用
注意:1)如果目标路径不存在,则文件将自动删除。 注意:2)如果在驼峰URL中未使用“ noop = true”,则文件文件将被删除(如果目标路径为null)
参考:-enter link description here
基本测试代码:
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
public class SFTPTest {
public static void main(String[] args) throws Exception {
DefaultCamelContext ctx = null;
try{
ctx = new DefaultCamelContext();
ctx.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
String filepath = "file:///camelexample/?fileName=test.txt&move=null";
from(filepath)
.log("File processed");
}
});
ctx.start();
Thread.sleep(5000);
ctx.stop();
}catch (Exception e){
System.err.println("Exception is : "+e.getLocalizedMessage());
}finally {
try{
ctx.stop();
}catch (Exception e){
System.err.println("Exception is : "+e.getLocalizedMessage());
}
}
}
}
答案 1 :(得分:0)
如果设置了移动选项,则文件组件将移动文件,无法将其设置为null
,然后使其自动删除文件。默认情况下,文件被移动到名为.camel
的文件夹中。
因此,可以设置delete = true或将move设置为某个文件夹名称来移动文件。