java - 如果目标存在,如何使用 Apache commons-io 递归地移动目录?

标签 java apache-commons-io

我一直在尝试让以下简单的代码正常工作,但我不明白为什么它失败了:

File dir = new File("/foo/bar"); // A path to a directory
File destDir = new File("/blah"); // The destination dir

FileUtils.moveDirectoryToDirectory(dir, destDir, !destDir.exists());

dir 目录包含文件和目录。 destDir 可能包含也可能不包含 bar

我得到的错误是:

Caused by: org.apache.commons.io.FileExistsException: Destination '/blah/bar' already exists

我在这里做错了什么? 内置的 Files.move(...) 会做得更好吗(我使用的是 JDK 1.8)?我也尝试过,但我似乎无法让它发挥作用。这是很简单的事情,我不明白为什么要付出如此多的努力来实现......

最佳答案

尝试使用copyDirectoryToDirectory(),然后删除原始源...

关于java - 如果目标存在,如何使用 Apache commons-io 递归地移动目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31947587/

相关文章:

java - 在 Swing 中创建组件,其中文本字段仅采用日期类型值

java - 使用卡片布局,卡片不交换?

java - Ant 与JAXB : add "extension" and make generated classes "serializable"

java - 如何使用 FileUtils 对将文件保存到磁盘进行单元测试?

java - 逐行获取Util方法#

java - Android Studio3.2 APK Build Error -> 保留文件或目录名 'lib'

c# - Java 静态 block 是否等同于 C# 静态构造函数?

java - 资源目录上的 FileUtils.listFiles()

java - 从Java中的文本文件中读取特定行

java - 在 Spring boot 应用程序中更新一行