gpt4 book ai didi

java - 如何使用 Spring 集成文件支持创建一种将文件从一个目录移动到另一个目录的方法?

转载 作者:行者123 更新时间:2023-11-30 02:17:23 26 4
gpt4 key购买 nike

我正在自学Spring。我想创建一个方法,其参数为源目录、目标目录和文件名。

boolean moveFile(String sourceDir, String targetDir, String fileName)

该方法可以将文件从源目录移动到目标目录。我已经经历过spring integration file support doc 。我还用 google 搜索了示例,但总是得到示例,其中两个目录都硬编码在 xml 文件中,并且将监视源目录,并在新文件出现时将文件移动到目标目录。我怎样才能创建我想要完成的方法。

谢谢。

最佳答案

Spring Integration 不提供这样的功能,因为它在 Java 中实际上作为单个方法存在。请参阅java.nio.file.Files : https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#move(java.nio.file.Path,%20java.nio.file.Path,%20java.nio.file.CopyOption...)

Move or rename a file to a target file.

以下是一些示例和说明:您可以在这里找到一些信息:http://tutorials.jenkov.com/java-nio/files.html

如果您仍在研究一些 Spring Integration 开箱即用的解决方案,FileWritingMessageHandler如果有效负载为File,则提供一些从一个文件复制到另一个文件的功能。 :

<int-file:outbound-channel-adapter id="moveFile"
directory="/destinationDir"
delete-source-files="true"
filename-generator-expression="'foo.txt'" />

这样FileWritingMessageHandler执行此逻辑:

if (!FileExistsMode.APPEND.equals(this.fileExistsMode) && this.deleteSourceFiles) {
rename(sourceFile, resultFile);
return resultFile;
}

哪里rename()正是这样:

private static void rename(File source, File target) throws IOException {
Files.move(source.toPath(), target.toPath(), StandardCopyOption.REPLACE_EXISTING);
}

关于java - 如何使用 Spring 集成文件支持创建一种将文件从一个目录移动到另一个目录的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47905692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com