ホームページ >Java >&#&チュートリアル >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 サイトの他の関連記事を参照してください。