In Java 8 and higher, you can use the Files.walk() method from Java NIO API to iterate through all files and sub-directories in a particular directory as shown below:

try (Stream<Path> files = Files.walk(Paths.get("dir"))) {

    // traverse all files and sub-folders

} catch (IOException ex) {

In Java 7 or below, you can write a recursive function to traverse all files and folders in a given directory:

public static void traverseDir(File dir) {
    File[] files = dir.listFiles();
    if(files != null) {
        for (final File file : files) {

Now you can call the above method to traverse a directory:

File dir = new File("dir");

Further Reading

You may be interested in other Java I/O articles:

✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.