我想将目录“Dir1”重命名为“Dir2”。
但是如果“Dir2”退出,那么我想将“Dir1”文件移动到“Dir2”。 C:\Artwork\Dir1 C:\Artwork\Dir2 重命名
Files.move(path, path.resolveSibling("NewName"))); //Worked Ok
对于已经存在的目录,我尝试过
Path source = Paths.get("C:\\Artwork\\Dir1");
Path newDir = Paths.get("C:\\Artwork\\Dir2");
Files.move(source, newDir,StandardCopyOption.ATOMIC_MOVE); //Throwed AccessDeniedException
Files.move(source, newDir,StandardCopyOption.REPLACE_EXISTING); //Throwed DirectoryNotEmptyException
最佳答案
我已经编写了一些实用方法来使用 NIO 文件 API 复制目录(该库是开源的):
专家:
<dependency>
<groupId>org.softsmithy.lib</groupId>
<artifactId>softsmithy-lib-core</artifactId>
<version>0.3</version>
</dependency>
教程:
http://softsmithy.sourceforge.net/lib/current/docs/tutorial/nio-file/index.html
应用程序接口(interface): CopyFileVisitor.copy
关于java - 使用 Java nio 文件,重命名目录,但如果已经存在,则将文件移动到现有目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15019307/