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 get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024