2013-02-22 150 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功能。

相關問題