Home >Java >javaTutorial >How Can I Recursively List Files in a Directory Using Java?

How Can I Recursively List Files in a Directory Using Java?

Susan Sarandon
Susan SarandonOriginal
2024-12-21 05:28:14790browse

How Can I Recursively List Files in a Directory Using Java?

Recursive File Listing in Java

When tasked with recursively listing files within a directory in Java, the Java API provides a comprehensive solution.

Native Solution with Java 8 Stream

Java 8 introduces a convenient stream-based approach for traversing files in a hierarchical structure:

try (Stream<Path> stream = Files.walk(Paths.get(path))) {
    stream.filter(Files::isRegularFile)
          .forEach(System.out::println);
}

This stream-centric mechanism offers flexibility for performing various operations, including filtering, grouping, and mapping, on the file paths.

Additional Considerations

  1. File Attributes Filtering: For specific file attribute filtering criteria, Java provides the Files.find method:
Files.find(Paths.get(path),
           Integer.MAX_VALUE,
           (filePath, fileAttr) -> fileAttr.isRegularFile())
        .forEach(System.out::println);
  1. Performance Comparison: Benchmark results indicate minimal performance differences between Files.walk and Files.find when filtering on file attributes. However, Files.walk generally proves more convenient due to its overloads and ease of use.

The above is the detailed content of How Can I Recursively List Files in a Directory Using Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn