Home > Java > javaTutorial > How to Recursively Iterate Through Files and Subdirectories in Java?

How to Recursively Iterate Through Files and Subdirectories in Java?

Linda Hamilton
Release: 2024-12-09 05:45:11
Original
540 people have browsed it

How to Recursively Iterate Through Files and Subdirectories in Java?

How to Iterate Through Files in Directories and Subdirectories Using Java

To obtain a comprehensive list of files, including those within subdirectories, Java provides a straightforward solution. By leveraging recursion, it's possible to navigate the file system effectively.

Recursive Approach

Utilize File#isDirectory() to determine whether a file represents a directory. If true, repeat the process with the outcome of File#listFiles(). This is known as recursion.

Here's an example implementation:

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());
        }
    }
}
Copy after login

Java 8's Files#walk

For Java 8 and above, Files#walk() offers a convenient alternative that employs tail recursion:

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

This safely handles deep hierarchies, avoiding potential StackOverflowError due to excessive recursion.

The above is the detailed content of How to Recursively Iterate Through Files and Subdirectories in Java?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template