Files.list()
Возвращает поток файлов и папок внутри папки (без вложенных). Рекурсивно обходит Files.walk().
Доступно с: Java 8
Синтаксис
static Stream<Path> list(Path dir) throws IOExceptionПараметры
| Параметр | Тип | Описание |
|---|---|---|
| dir | Path | Папка, содержимое которой нужно получить. |
Возвращаемое значение
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, создание папок и файлов, размер, копирование, перемещение, удаление и список файлов.