はじめに
ファイルの再帰的リストは、次のような一般的なタスクです。ディレクトリとサブディレクトリを走査して、指定されたパス内のすべてのファイルのリストを取得します。 Java では、組み込みライブラリとサードパーティ ライブラリの両方を使用してこれを実現する複数のアプローチがあります。
Java 8 (Using Files.walk)
Java 8 の導入Files.walk メソッドを使用してファイルを処理する強力な方法で、ディレクトリ ツリー内のすべてのファイルを表す Path オブジェクトのストリームを提供します。ディレクトリの下にあるすべての通常のファイルをリストするには、次のコードを使用できます。
try (Stream<Path> stream = Files.walk(Paths.get(path))) { stream.filter(Files::isRegularFile) .forEach(System.out::println); }
このアプローチは、ファイル ツリーを横断し、個々のファイルに対して名前の出力や出力などの操作を実行する便利で簡単な方法を提供します。追加の処理を実行します。
Java 8 (Files.find を使用)
Java 8また、フィルター述語に基づいてファイルを検索できる Files.find メソッドも導入されました。再帰的なファイルのリストの場合、フィルターを使用して通常のファイルをチェックできます。
Files.find(Paths.get(path), Integer.MAX_VALUE, (filePath, fileAttr) -> fileAttr.isRegularFile()) .forEach(System.out::println);
ファイル属性に基づいてフィルターする必要がある場合は Files.find の方が効率的かもしれませんが、パフォーマンスはそれほど向上しません。通常のファイルを単にリストする場合の Files.walk と Files.find の違い。
他との比較アプローチ
Java 8 のストリームベースのアプローチは、従来の再帰的またはハッキングな実装に比べて大きな利点を提供します。これらは、再帰的なファイルのリストを処理するための簡潔かつ表現力豊かな方法を提供し、コードの読み取り、保守、拡張を容易にします。
以上がJava 8 の `Files.walk` と `Files.find` を使用して Java でファイルを再帰的にリストする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。