为什么我不能使用 Files.move() 在驱动器中移动非空目录?

Why can't I move non-empty directories across a drive using Files.move()?

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

我敢打赌,这与原生 "move" 的工作方式有关。

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