rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

java 与えられたディレクトリ内のすべてのノーマルファイルを再帰的に取得する

2021 Aug. 14.
2021 Aug. 09.

import java.util.ArrayList;
import java.util.List;
import java.io.File;

public class GetChildFiles {
    public static void main( String[] args ){
        File rootDir = new File("/SERACH/PATH");
        ArrayList<String> tmpFilePaths = new ArrayList<String>();
        List<String> childFiles = getNormalFiles(rootDir, tmpFilePaths);
        // output result
        for (String filepath: childFiles ){
            System.out.println(filepath);
        }
    }

    /*
     * ノーマルファイルを検索する再帰関数
     * パラメータ
     *   givenDir  検索するディレクトリパス。
     *   tmpFilePaths  空のArrayList<String>型変数。
     *       再帰的に起動する関数に1つ前の再帰関数結果をtmpFilePathsを通じて渡す。
     *       ユーザーは、最初にこの関数を起動するので、空のtmpFilePathsを与える。
     */
    static ArrayList<String> getNormalFiles(File givenDir, ArrayList<String> tmpFilePaths ){
        File[] childFiles = givenDir.listFiles();
        if (childFiles.length > 0) {
            for ( File eachFile: childFiles ) {
                if (eachFile.isDirectory()) {
                    getNormalFiles(eachFile, tmpFilePaths);
                } else if (eachFile.isFile) {
                    tmpFilePaths.add(eachFile.getPath());
                }
                } else {
                    continue;
                }
            }
        }
        return tmpFilePaths;
    }
}