1

我想将 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
4

3 回答 3

3

我编写了一些实用方法来使用 NIO File 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

API: CopyFileVisitor.copy

于 2013-02-22T09:08:59.423 回答
1

如果 Dir2 不存在,则用于Dir2.mkdir(); 创建目录。如果它已经exixt那么moveDirectory(File Dir1, File Dir2); 我们可以移动整个目录

于 2013-02-22T08:45:39.337 回答
0

从 Java 1.7 开始,有 java.nio.file.Files 提供了处理文件和目录的操作。尤其是 move、copy 和 walkFileTree 函数。

于 2013-02-22T08:55:15.520 回答