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

ファイルやディレクトリの削除

ファイル、ディレクトリ、リンクを削除できます。 シンボリック・リンクの場合は、リンクは削除されますが、リンク先は削除されません。 ディレクトリの場合は、削除するディレクトリは空である必要があります。空でない場合、削除が失敗します。

Filesクラスには2つの削除メソッドがあります。

delete(Path)メソッドは、ファイルを削除し、削除が失敗した場合は例外をスローします。 たとえば、ファイルが存在しない場合はNoSuchFileExceptionがスローされます。 次のようにこの例外をキャッチして、削除が失敗した理由を判断できます。

try {
    Files.delete(path);
} catch (NoSuchFileException x) {
    System.err.format("%s: no such file or directory%n", path);
} catch (DirectoryNotEmptyException x) {
    System.err.format("%s not empty%n", path);
} catch (IOException x) {
    //ファイル権限の問題はここでキャッチされます。
    System.err.println(x);
}

deleteIfExists(Path)メソッドもファイルを削除しますが、ファイルが存在しない場合も例外はスローされません。 複数のスレッドでファイルの削除を行う場合に、対象のファイルを別のスレッドが先に削除したという理由だけで例外がスローされないようにするには、このメソッドが役立ちます。


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

前のページ: ファイルやディレクトリのチェック
次のページ: ファイルやディレクトリのコピー