Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Files.list()

Возвращает поток файлов и папок внутри папки (без вложенных). Рекурсивно обходит Files.walk().

Доступно с: Java 8

Синтаксис

static Stream<Path> list(Path dir) throws IOException

Параметры

ПараметрТипОписание
dirPathПапка, содержимое которой нужно получить.

Возвращаемое значение

Stream<Path>Поток путей; его нужно закрыть.

Примеры

Список текстовых файлов папки по алфавиту:

void main() throws IOException {
    Path dir = Files.createDirectories(Path.of("docs"));
    Files.writeString(dir.resolve("b.txt"), "");
    Files.writeString(dir.resolve("a.txt"), "");
    Files.writeString(dir.resolve("c.md"), "");
 
    try (Stream<Path> files = Files.list(dir)) {
        files.map(p -> p.getFileName().toString())
             .filter(name -> name.endsWith(".txt"))
             .sorted()
             .forEach(IO::println);
    }
}

Результат:

a.txt
b.txt

Примечания

Порядок файлов не гарантирован и зависит от системы — сортируйте сами. Поток держит папку открытой, поэтому используйте try (...). Files.walk(dir) обходит и все вложенные папки.

См. также

  • Files.createDirectories() — Создаёт папку вместе со всеми недостающими родительскими папками.
  • Files.lines() — Читает файл лениво — как поток строк, не загружая его в память целиком.
  • Path.of() — Создаёт объект Path — путь к файлу или папке.

Вопросы и ответы по теме

В учебнике

  • Файлы и пути — Работа с файловой системой в Java — Path, Files.exists, создание папок и файлов, размер, копирование, перемещение, удаление и список файлов.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.