当前位置: 首页 > 知识库问答 >
问题:

如何使用Java NIO将所有文件从源目录移动到目标目录,并将现有文件保留在目标目录中?

林鸿飞
2023-03-14

我在Windows中使用Java8,我试图实现一件简单的事情。假设我有一个source目录和一个destination目录。我每天都在尝试将文件从源移动到目的地。下面是一个简单的java代码,使用NIO;

Path sourcePath = Paths.get("C:\\source");
Path destinationPath = Paths.get("C:\\destination");
try {
    Files.move(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
    e.printStackTrace();
}
java.nio.file.DirectoryNotEmptyException: C:\destination
    at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:373)
    at sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287)
    at java.nio.file.Files.move(Files.java:1395)
    at instacopy.Test.main(Test.java:14)
    null

共有1个答案

郁和通
2023-03-14

首先:

这将是一个好主意,只是测试文件夹是否为空。

总之,为了覆盖Dest中的文件,要说到重点:IMO的最佳选择是使用apache commons.io FileUtils:

FileUtils.copyDirectory(srcDir, destDir);

使用java nio的另一种选择--您需要遍历文件并复制和覆盖foreach文件

Paths target;
try (Stream<Path> paths = Files.walk(sourcePath)) {
                paths.forEach((srcPath)->{Files.copy(srcPath, target, StandardCopyOption.REPLACE_EXISTING);});
            } catch (IOException e) {
                e.printStackTrace();
            }

然后删除源目录中的文件

 类似资料:
  • 因为我对Apache-Camel非常陌生,所以我坚持使用一个用例。我希望使用camel路由实现将所有文件移动到目标中没有子目录的特定目录, 比如-- 任何帮助实现这一点,路线本身将不胜感激!提前感谢!

  • 我正在尝试实现一个Spring Integration类,它获取一个. xml文件并对其进行解析,如果有效,就将其移动到一个“存档”目录,如果无效,就将其移动到一个错误目录。 然而,每当调用< code>calback.execute()时,我都会得到这个错误,我不太明白为什么。 虽然我有一个消息处理程序,但我怀疑这个问题的原因是我没有重写handle方法。但我不知道该怎么做。

  • 我是Perl新手,我正在尝试编写一个脚本,该脚本获取一个tar文件的路径,检查其中是否有txt文件,如果是,则将文件提取到输出文件夹。这是我的代码: 当我运行这个脚本时,我收到一个错误:存档中没有这样的文件。 你能帮我理解我做错了什么,什么应该是正确的命令?

  • 问题内容: 下面的代码可以正常工作,但是每次运行时都会将字体文件的副本保留在temp目录中。这些文件名为 +〜JF7154903081130224445.tmp ,其中每个创建的文件的数字似乎都是随机的。 我在sun.com的论坛上以及在Web上的其他资源中发现了多年的讨论,这些讨论被认为是JDK中的错误,从1.5.0_06升级到1.5.0_08可以解决问题;但是,我使用的版本是更高版本(1.6.

  • 问题内容: 我正在使用JSch在由GWT制作的网站中连接到SFTP。我读过的一个小例子,, 但是我没有找到将文件从远程服务器目录复制到远程服务器目录的解决方案。 例如,我要将文件从复制到。文件名= 。 我在这里呆了几个小时,因为大多数网络解决方案都是将文件从远程服务器获取到本地,或者将文件从本地上传到远程服务器。 假设存在于 我上传在。 现在,我想移动到并删除在。 我该怎么办? 问题答案: 似乎需

  • 我有一个文件夹,其中有一个。dat文件和一个是。zip文件,我必须移动。将文件压缩到另一个目录 我有两个文件夹,一个是 请建议如何实现这一点,我现在所做的是。。。