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
files.map(Path::toAbsolutePath)
.forEach(System.out::println);
} catch (IOException ex) {
ex.printStackTrace();
}
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) {
traverseDir(file);
}
}
System.out.println(dir.getAbsoluteFile());
}
Now you can call the above method to traverse a directory:
File dir = new File("dir");
traverseDir(dir);
Further Reading
You may be interested in other Java I/O articles:
- Reading and Writing Files in Java
- How to Read and Write Text Files in Java
- How to Read and Write Binary Files in Java
- Reading and Writing Files using Java NIO API
- How to read a file line by line in Java
✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.