move(Path, Path, CopyOption...)
メソッドを使用して、ファイルやディレクトリを移動できます。 移動先のファイルが存在する場合は、REPLACE_EXISTING
オプションを指定していない限り、移動は失敗します。
空のディレクトリは移動できます。 空でないディレクトリの移動については、その中身を移動せずにディレクトリを移動できる場合には可能になります。 UNIXシステムでは一般的に、同じパーティション内でディレクトリを移動するにはディレクトリ名を変更します。 このような場合は、ファイルが含まれているディレクトリでも移動することができます。
このメソッドは可変引数を取ります。StandardCopyOption
列挙型の次の定数を使用できます。
REPLACE_EXISTING
– 移動先ファイルがすでに存在する場合でも移動を実行します。 移動先がシンボリック・リンクの場合は、シンボリック・リンク自体が置き換わり、そのリンク先は影響を受けません。
ATOMIC_MOVE
– 移動を原子的なファイル操作として実行します。 ファイル・システムが原子的な移動操作をサポートしていない場合は、例外がスローされます。 ATOMIC_MOVE
を使用すると、ファイルをディレクトリに移動する際に、そのディレクトリを参照するすべてのプロセスが必ず完全なファイルにアクセスできることが保証されます。
move
メソッドは、次のコードのように使用します。
import static java.nio.file.StandardCopyOption.*; ... Files.move(source, target, REPLACE_EXISTING);
move
メソッドは、このコードのように単一のディレクトリに対しても実行できますが、ほとんどの場合は再帰的なファイル・ツリー・メカニズムとともに使用されます。 詳細は、ファイル・ツリーの探索を参照してください。