1

Dirの名前を「Dir1」から「Dir2」に変更したい。

しかし、「Dir2」が存在する場合、「Dir1」ファイルを「Dir2」に移動したいと考えています。C:\Artwork\Dir1 C:\Artwork\Dir2 名前変更用

Files.move(path, path.resolveSibling("NewName"))); //Worked Ok

Dirがすでに存在する場合、私は試しました

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 ファイル 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 があります。特に、移動、コピー、および walkFileTree 関数。

于 2013-02-22T08:55:15.520 に答える