java - 为什么无法使用 Files.move() 在驱动器上移动非空目录?

标签 java file-io nio2

今天,我在一本 1z0-809 (OCP Java 8) 准备书中读到,仅当非空目录位于同一驱动器上时,Files.move() 才可以应用于非空目录,并且移动非空目录跨驱动器的目录将抛出 NIO.2 DirectoryNotEmptyException。但在驱动器上移动空目录则不会。有人可以告诉我为什么吗?

最佳答案

我敢打赌,这与本地“移动”的工作方式有关。

原始“移动”只是在后台更改文件指针,而移动到新驱动器实际上涉及复制和删除,每个操作都会因与实际“移动”不同的原因而自行失败。作者可能希望您单独执行每个操作,以便您在跨驱动器移动时可以单独处理所述操作。

关于java - 为什么无法使用 Files.move() 在驱动器上移动非空目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39089145/

相关文章:

java - 如何使用NIO获取有关Windows快捷方式来源的信息?

java - 使用 log4j2 的 Apache tomcat 8.5 访问日志

java - 如何使用泛型参数将泛型类型转换为泛型类型?

java - 将输出写入文本文件

java - 简单的java正则表达式不起作用

java - 如何检查操作系统是否符合 POSIX

c# - "Could not find a part of the path"错误信息

c - 将字符添加到现有的字符/字符指针数组?

c++ - C/C++ 中的非线程安全文件 I/O

Java NIO.2 CompletetionHandler 未到达