ファイルの確認と削除

広告

今度はファイルを削除してみます。その前に、指定したファイルが存在しているかどうかの確認する方法を見ておきましょう。Fileクラスで用意されている"exists"メソッドを使います。

この抽象パス名が示すファイルまたはディレクトリが存在するかどうかを判定します。

戻り値:
  この抽象パス名が示すファイルまたはディレクトリが存在する場合は true、そうでない場合は 
    false
例外:
  SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの 
    SecurityManager.checkRead(java.lang.String) メソッドがファイルまたはディレクトリへの読
    み込みアクセスを許可しない場合

確認したいファイル又はディレクトリを元にFileクラスのオブジェクトを作成し、"exists"メソッドを実行すると存在しているかどうかの判別が行えます。例えば下記のような感じです。

File file = new File("c:¥¥tmp¥¥newfile.txt");
if (file.exists()){
    System.out.println("ファイルは存在します");
}else{
    System.out.println("ファイルは存在しません");
}

次に削除です。Fileクラスで用意されている"delete"メソッドを使います。

この抽象パス名が示すファイルまたはディレクトリを削除します。このパス名がディレクトリを示す
場合、そのディレクトリが削除されるためには空である必要があります。

戻り値:
  ファイルまたはディレクトリが正常に削除された場合は true、そうでない場合は false
例外: 
  SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの 
    SecurityManager.checkDelete(java.lang.String) メソッドがファイルへの削除アクセスを許可
    しない場合

使い方としては下記の通りです。

File newdir = new File("c:¥¥tmp¥¥sub");
newdir.delete();

ファイルでもディレクトリでも削除できます。

サンプルプログラム

では一度試してみましょう。まず削除対象のファイルが存在しているか確認したうえで削除してみます。

fileTest8.java

import java.io.File;

class fileTest8{
  public static void main(String args[]){
    File file = new File("c:¥¥tmp¥¥newfile.txt");

    if (file.exists()){
      if (file.delete()){
        System.out.println("ファイルを削除しました");
      }else{
        System.out.println("ファイルの削除に失敗しました");
      }
    }else{
      System.out.println("ファイルが見つかりません");
    }
  }
}

上記をコンパイルして実際に実行してみると下記のようになります。

p12

もう一度同じプログラムを実行すると、今度はファイルが削除されて存在しないため失敗します。

p13

( Written by Tatsuo Ikura )