スキマハコ

わすれがちなスキマな事を詰め込んでいます。ITの他に暮らしについても書いています。

フィルタ利用

Fileの生成先をディレクトリにした場合、そのディレクトリ内に存在するディレクトリおよびファイル名を取得するfile.list(FilenameFilter filter)を使用するときに引数として渡すフィルタの作りかた。接頭辞と末尾で設定も可能。
ほかに含む者もできるけどファイル名だと使わないかな??だいたい拡張子を調べるときとかに使う…かな。

import java.io.File;
import java.io.FileFilter;

public class EnssFileFilter implements FileFilter {
	//	 フィルタ対象文字列
	private String filter_key = null;	
	
	//引数なしだと全てを選択する
	public EnssFileFilter(){
		filter_key = "";
	}
	
	//生成した時の引数をキーワードとする
	public EnssFileFilter(String key){
		filter_key= key;
	}
	public boolean accept(File arg0) {
		return false;
	}
	
	// FilenameFilterインタフェースで宣言されているacceptメソッドを記述
	// 第一引数はFile型、第二引数はString型で戻り値はboolean型
	// dirはFilenameFilterTestクラスにあるOBJECT_DIRと同一の値
	// nameはOBJECT_DIRのディレクトリ内に存在している、ある1ファイルの名前
	public boolean accept(File dir, String name){

	// Fileクラスのオブジェクト生成
		File file = new File(name);

		// ディレクトリならばfalseを返却(リストに追加しない)
		if(file.isDirectory()){
			return false;
		}

		//ファイル名の接頭辞が"filter_key"ならばtrueを返却(リストに追加)
		// そうでなければfalseを返却(リストに追加しない)
		//return (name.startsWith(filter_key));
		
		//ファイル名の末尾が"filter_key"ならばtrueを返却(リストに追加)
		// そうでなければfalseを返却(リストに追加しない)
		return (name.endsWith(filter_key));

	}

}