このページを正しく表示するには、ブラウザでJavaScriptを有効にする必要があります。
コース: 重要なクラス
レッスン: 基本的なI/O
セクション: ファイルI/O(NIO.2を含む)
ファイルやディレクトリのコピー
ホームページ > 重要なクラス > 基本的なI/O

ファイルやディレクトリのコピー

copy(Path, Path, CopyOption...)メソッドを使用して、ファイルやディレクトリをコピーできます。 コピー先のファイルが存在する場合は、REPLACE_EXISTINGオプションを指定していない限り、コピーは失敗します。

ディレクトリのコピーは可能ですが、ディレクトリ内のファイルはコピーされません。このため、元のディレクトリにファイルが含まれている場合でも新しいディレクトリは空になります。

シンボリック・リンクをコピーする場合は、リンク先がコピーされます。 リンク先ではなくリンク自体をコピーするには、NOFOLLOW_LINKSオプションかREPLACE_EXISTINGオプションを指定します。

このメソッドは可変引数を取ります。 StandardCopyOption列挙型とLinkOption列挙型の次の定数を使用できます。

列挙型(Enum)について詳しくない場合は、『Enum Types』を参照してください。

copyメソッドは、次のコードのように使用します。

import static java.nio.file.StandardCopyOption.*;
...
Files.copy(source, target, REPLACE_EXISTING);

Filesクラスには、ファイルのコピーだけでなく、ファイルとストリームの間でのコピーに使用できるメソッドも定義されています。 copy(InputStream, Path, CopyOptions...)メソッドを使用すると、入力ストリームからファイルにすべてのバイトをコピーできます。 copy(Path, OutputStream)メソッドを使用すると、ファイルから出力ストリームにすべてのバイトをコピーできます。

サンプルのCopyでは、copyメソッドとFiles.walkFileTreeメソッドを使用して、コピーを再帰的に行っています。 詳細は、『ファイル・ツリーの探索』を参照してください。


サンプル・プログラムで問題が発生した場合は、 『Compiling and Running the Examples: FAQs』を参照してください。
フィードバックをお寄せください。さまざまなご意見をお待ちしております。

前のページ: ファイルやディレクトリの削除
次のページ: ファイルやディレクトリの移動