使用JavaNIO文件,重命名目录,但如果已经存在,则将文件移动到现有目录

使用JavaNIO文件,重命名目录,但如果已经存在,则将文件移动到现有目录,java,java-7,Java,Java 7,我想把Dir 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"); F

我想把Dir 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

如果Dir2不存在,则使用Dir2.mkdir;创建一个目录。如果已经是EXEXT,则移动目录文件Dir1,文件Dir2;
如果Dir2不存在,我们可以移动整个目录,然后使用Dir2.mkdir;创建一个目录。如果已经是EXEXT,则移动目录文件Dir1,文件Dir2;
我们可以移动整个目录,因为Java 1.7中有Java.nio.file.Files,它提供了处理文件和目录的操作。特别是移动、复制和walkFileTree功能。

自从Java 1.7以来,就有了Java.nio.file.Files,它提供了处理文件和目录的操作。特别是move、copy和walkFileTree函数。

我已经编写了一些实用方法,使用NIO文件API复制目录。该库是开源的:

马文:

<dependency>  
    <groupId>org.softsmithy.lib</groupId>  
    <artifactId>softsmithy-lib-core</artifactId>  
    <version>0.3</version>  
</dependency>  
教程:

API:

我已经编写了一些实用程序方法,使用NIO文件API复制目录库是开源的:

马文:

<dependency>  
    <groupId>org.softsmithy.lib</groupId>  
    <artifactId>softsmithy-lib-core</artifactId>  
    <version>0.3</version>  
</dependency>  
教程:

API:

听起来好像已经存在的dir案例中存在问题?如果某些东西不起作用,请告诉我们。Files.movesource、newDir、StandardCopyOption.ATOMIC\u MOVE;java.nio.file.AccessDeniedException:C:\Artwork\Dir1->C:\Artwork\Dir2 Files.movesource、newDir、StandardCopyOption.REPLACE_EXISTING;java.nio.file.directoryNotemptyException听起来dir已经出现了问题?如果某些东西不起作用,请告诉我们。Files.movesource、newDir、StandardCopyOption.ATOMIC\u MOVE;java.nio.file.AccessDeniedException:C:\Artwork\Dir1->C:\Artwork\Dir2 Files.movesource、newDir、StandardCopyOption.REPLACE_EXISTING;java.nio.file.directoryNotemptyException谢谢Chakri,我可以,但我想使用java 7 nio文件。谢谢Chakri,我可以,但我想使用java 7 nio文件。