ホームページ >Java >&#&チュートリアル >Java でファイルとサブディレクトリを再帰的に反復処理する方法

Java でファイルとサブディレクトリを再帰的に反復処理する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-09 05:45:11519ブラウズ

How to Recursively Iterate Through Files and Subdirectories in Java?

Java を使用してディレクトリおよびサブディレクトリ内のファイルを反復処理する方法

サブディレクトリ内のファイルを含む、ファイルの包括的なリストを取得するために、Java は以下を提供します。簡単な解決策。再帰を活用すると、ファイル システムを効果的に移動できます。

再帰的アプローチ

File#isDirectory() を利用して、ファイルがディレクトリを表すかどうかを判断します。 true の場合、File#listFiles() の結果でプロセスを繰り返します。これは再帰として知られています。

実装例は次のとおりです。

public static void showFiles(File[] files) {
    for (File file : files) {
        if (file.isDirectory()) {
            System.out.println("Directory: " + file.getAbsolutePath());
            showFiles(file.listFiles()); // Recursive call
        } else {
            System.out.println("File: " + file.getAbsolutePath());
        }
    }
}

Java 8 の Files#walk

Java 8 以降の場合、Files #walk() は、tail を使用する便利な代替手段を提供しますrecursion:

Files.walk(dir).forEach(path -> showFile(path.toFile()));

これは深い階層を安全に処理し、過剰な再帰による潜在的な StackOverflowError を回避します。

以上がJava でファイルとサブディレクトリを再帰的に反復処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。