Java: ファイル一覧を取得する(拡張子の大文字小文字を区別しない)

プログラミング
スポンサーリンク




こんにちは、おみです。

同じ種類のファイルでも、作成する人の好みで拡張子が「.txt」だったり「.TXT」だったりと、大文字小文字が違う場合があります。

そこで今回は、同じ拡張子であれば大文字でも小文字でも取得できるようなロジックを作成したので、紹介したいと思います。

 

 

スポンサーリンク

ソース

// --------------------------------------------------------------
// メソッド名 : searchFiles
// 
// 概要 : フォルダ内にある、指定した拡張子のファイルパス一覧を取得する
// 
// 第1引数 : String  path        ... 探索するフォルダのパス 
// 第2引数 : String  word        ... 取得対象の拡張子
// 第3引数 : boolean insensitive ... 大文字小文字区別フラグ
// --------------------------------------------------------------
   

public static List<String> searchFiles(String path, String word, boolean insensitive) {
        // 戻り値の生成
        List<String> list = new ArrayList<String>();

        // フォルダ内のファイル一覧を取得
        File dir = new File(path);
        File files[] = dir.listFiles();

        // 拡張子を正規表現に変換
        Pattern pattern = null;
        insensitive ... true : 区別しない false : 区別する
        if (insensitive) {
            pattern = Pattern.compile(word, Pattern.CASE_INSENSITIVE);
        } else {
            pattern = Pattern.compile(word);
        }

        // ファイルパス一覧を取得
        for(int i = 0 ; i < files.length ; i++){
            String file_name = files[i].getName();
            Matcher matcher = pattern.matcher(file_name);
            // ファイルで拡張子が一致でセット
            if(matcher.find()){
                list.add(path + "\\" + file_name);
            }
        }

        // メソッドの終了
        return list;
    }

コメント

タイトルとURLをコピーしました