移动文件或目录

您可以使用移动(路径,路径,CopyOption ...)方法移动文件或目录。如果目标文件存在,则移动失败,除非指定了REPLACE_EXISTING选项。

空目录可以移动。如果目录不为空,则可以在不移动目录内容的情况下移动目录时允许移动。在 UNIX 系统上,在同一分区内移动目录通常包括重命名目录。在这种情况下,即使目录包含文件,此方法也可以使用。

此方法采用 varargs 参数-支持以下StandardCopyOption枚举:

  • REPLACE_EXISTING –即使目标文件已存在也执行移动。如果目标是符号链接,则将替换符号链接,但是它所指向的内容不受影响。

  • ATOMIC_MOVE –将移动作为原子文件操作执行。如果文件系统不支持原子移动,则会引发异常。使用ATOMIC_MOVE,您可以将文件移动到目录中,并确保监视目录的所有进程都可以访问完整的文件。

下面显示了如何使用move方法:

import static java.nio.file.StandardCopyOption.*;
...
Files.move(source, target, REPLACE_EXISTING);

尽管您可以如图所示在单个目录上实现move方法,但该方法最常与文件树递归机制一起使用。有关更多信息,请参见走文件树