特定の拡張子のみのファイルを削除する方法

Javaでは、http://java.sun.com/j2se/1.4.2/docs/api/java/io/FilenameFilter.html[FilenameFilter]を実装し、accept(File dir、String name)メソッドをオーバーライドして、ファイルフィルタリング機能を実行します。

この例では、 `FilenameFilter`を使用して、フォルダ" c:\\ folder "の" .txt "拡張子で終わるすべてのファイルを一覧表示して削除する方法を示します。

package com.mkyong.io;

import java.io.** ;

public class FileChecker {

   private static final String FILE__DIR = "c:\\folder";
   private static final String FILE__TEXT__EXT = ".txt";

   public static void main(String args[]) {
    new FileChecker().deleteFile(FILE__DIR,FILE__TEXT__EXT);
   }

   public void deleteFile(String folder, String ext){

     GenericExtFilter filter = new GenericExtFilter(ext);
     File dir = new File(folder);

    //list out all the file name with .txt extension
     String[]list = dir.list(filter);

     if (list.length == 0) return;

     File fileDelete;

     for (String file : list){
    String temp = new StringBuffer(FILE__DIR)
                      .append(File.separator)
                      .append(file).toString();
        fileDelete = new File(temp);
        boolean isdeleted = fileDelete.delete();
        System.out.println("file : " + temp + " is deleted : " + isdeleted);
     }
   }

  //inner class, generic extension filter
   public class GenericExtFilter implements FilenameFilter {

       private String ext;

       public GenericExtFilter(String ext) {
         this.ext = ext;
       }

       public boolean accept(File dir, String name) {
         return (name.endsWith(ext));
       }
    }
}