2013-02-22 119 views
1

我想将Dir“Dir1”重命名为“Dir2”。使用Java nio文件重命名目录但如果已存在将文件移动到现有目录

但是,如果“Dir2”退出,那么我想将“Dir1”文件移动到“Dir2”。 C:\艺术品\ Dir1中 C:\艺术品\方向2 对于重命名

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 
+0

听起来好像在“目录已存在”的情况下有问题?如果有什么不起作用,请告诉我们。 – 2013-02-22 08:12:31

+0

Files.move(source,newDir,StandardCopyOption.ATOMIC_MOVE); java.nio.file.AccessDeniedException:C:\ Artwork \ Dir1 - > C:\ Artwork \ Dir2 Files.move(source,newDir,StandardCopyOption.REPLACE_EXISTING); java.nio.file.DirectoryNotEmptyException – Sushant 2013-02-22 08:41:23

回答

0

如果方向2是不存在的,然后使用Dir2.mkdir();创建一个目录。如果它已经exixt然后moveDirectory(File Dir1, File Dir2); 我们可以移动整个目录

+0

谢谢Chakri,我可以做到这一点,但我想使用Java 7的nio文件。 – Sushant 2013-02-22 08:49:34

0

由于Java 1.7有java.nio.file.Files它提供操作文件和目录的操作。特别是移动,复制和walkFileTree功能。

相关问题