No Programming, No Life

プログラミング関連の話題や雑記

ファイルリスト取得にフィルタを利用

ファイルリストを取得するときに「名前は〜Aで始まって〜」とかいう条件でフィルタリングすることがよくある。
そんな際に使えそうなのが以下。

先頭がAで始まるファイルのリストを取得

/* フィルタ作成 */
FilenameFilter filter = new FilenameFilter() {
    /* ここに条件を書く。trueの場合、そのファイルは選択される */
    public boolean accept(File dir, String name) {
        if (name.startsWith("A")) {
            return true;
        } else {
            return false;
        }
    }
};

/*
 * 先頭がAで始まるファイルのリストを取得
 */
File[] files = new File(".").listFiles(filter);

上みたいに無名クラスにしてFilenameFilterインタフェースを実装して使うと便利。