A directory stream visits the entries inside a directory without reading file contents.

Directory List

DirectoryList.java
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;

public class DirectoryList {
    public static void main(String[] args) throws Exception {
        int extra = ;
        Path dir = Files.createTempDirectory("java21");
        Files.writeString(dir.resolve("a.txt"), "A");
        Files.writeString(dir.resolve("b.txt"), "B");

        if (extra > 0) {
            Files.writeString(dir.resolve("c.txt"), "C");
        }

        int count = 0;
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
            for (Path entry : stream) {
                count++;
            }
        }

        Files.deleteIfExists(dir.resolve("a.txt"));
        Files.deleteIfExists(dir.resolve("b.txt"));
        Files.deleteIfExists(dir.resolve("c.txt"));
        Files.deleteIfExists(dir);
        System.out.println("files=" + count);
    }
}
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;

public class DirectoryList {
    public static void main(String[] args) throws Exception {
        int extra = ;
        Path dir = Files.createTempDirectory("java21");
        Files.writeString(dir.resolve("a.txt"), "A");
        Files.writeString(dir.resolve("b.txt"), "B");

        if (extra > 0) {
            Files.writeString(dir.resolve("c.txt"), "C");
        }

        int count = 0;
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
            for (Path entry : stream) {
                count++;
            }
        }

        Files.deleteIfExists(dir.resolve("a.txt"));
        Files.deleteIfExists(dir.resolve("b.txt"));
        Files.deleteIfExists(dir.resolve("c.txt"));
        Files.deleteIfExists(dir);
        System.out.println("files=" + count);
    }
}
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;

public class DirectoryList {
    public static void main(String[] args) throws Exception {
        int extra = ;
        Path dir = Files.createTempDirectory("java21");
        Files.writeString(dir.resolve("a.txt"), "A");
        Files.writeString(dir.resolve("b.txt"), "B");

        if (extra > 0) {
            Files.writeString(dir.resolve("c.txt"), "C");
        }

        int count = 0;
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
            for (Path entry : stream) {
                count++;
            }
        }

        Files.deleteIfExists(dir.resolve("a.txt"));
        Files.deleteIfExists(dir.resolve("b.txt"));
        Files.deleteIfExists(dir.resolve("c.txt"));
        Files.deleteIfExists(dir);
        System.out.println("files=" + count);
    }
}
directory stream A DirectoryStream opens a lightweight view of the names inside one directory.
try-with-resources The stream is closed automatically when the try block finishes.