我需要一些帮助来删除Mule应用程序中的文件。这是我的用例:
我使用文件入站端点获取文件,获取数据并在对数据进行一些验证后将数据上传到数据库。
我想在上传到数据库成功后删除该文件。我尝试使用java.io.File.delete(如此stackoverflow帖子中所示),但它无法正常工作。
Mule - Delete files with Files Connector
我正在使用Mule 3.3.2并在我的本地计算机上运行服务器。 (当我使用简单的Java程序删除时,我能够删除该文件。)
你能帮忙吗?
---- ---- UPDATE 这就是我在用于删除文件的Java组件的OnCall()方法中所拥有的。 isDeleted返回false。
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
String fileName = (String) eventContext.getMessage().getProperty(
"originalFilename");
filePath = "C:\\REP-UNZIP\\";
File file = new File(filePath + fileName);
boolean isDeleted = false;
isDeleted = java.nio.file.Files.deleteIfExists(file.toPath());
if (file.isFile()) {
isDeleted = file.delete();
}
// isDeleted = FileUtils.deleteQuietly(file); LOG.info(“isDeleted =”+ isDeleted);
return Boolean.valueOf(isDeleted);
}
答案 0 :(得分:0)
只能使用自定义组件在流程中间访问带文件处理器的文件。 对于您的用例,您可以使用requester module。
这将允许您在流程中间调用文件入站组件,并且可以将文件处理器配置为在读取后删除文件。 开销是文件将被删除后再次放入内存中。
另一种方法是创建一个简单的java类来为你执行删除操作,它只需几行就可以在流程中的任何地方使用它而不会降低性能。