In this example we are going to learn to use the DirectoryStream
, which part of java.nio.file
package, to find files in a directory. We begin by creating a Path
, the directory where the search will be conducted.
After that we create a DirectoryStream
using Files.newDirectoryStream()
. To create a directory stream we passed two arguments, the starting path and a glob expression. Below we use *.txt
glob expression to filter all text files in the F:/Temp
.
To get all the entries of the directory stream we can use a foreach
loop as can be seen below. We iterate each entry, which is a Path
object. And we print the entries file name using the getFileName()
method.
package org.kodejava.io;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FindFilesInDirectory {
public static void main(String[] args) {
Path dir = Paths.get("F:/Temp");
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.txt")) {
for (Path entry : stream) {
System.out.println(entry.getFileName());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
You can also notice that in this example we are using the try-with-resource
statement. This mean that the DirectoryStream will be closed appropriately when the process is done. This type of try
statement is an improvement introduced in JDK 7.
- How do I create a string of repeated characters? - September 1, 2023
- How do I convert datetime string with optional part to a date object? - August 28, 2023
- How do I split large excel file into multiple smaller files? - April 15, 2023