АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
614 of 1310 menu
Новый формат обучения! Репетиторство по программированию. Есть еще 3 свободных места! Жми для подробностей.

Функция listFiles

Функция listFiles возвращает массив объектов File, представляющих файлы и поддиректории в указанной директории. Если вызывается на файле, а не на директории, возвращает null. Может принимать параметром фильтр для отбора файлов по определенным критериям.

Импорт

import java.io.File

Синтаксис

fun listFiles(): Array<File>?
fun listFiles(filter: (File) -> Boolean): Array<File>?
fun listFiles(filter: FileFilter): Array<File>?

Пример

Получим список всех файлов и директорий в текущей директории:

val dir = File(".") val files: Array<File>? = dir.listFiles() if (files != null) { for (file in files) { println(file.name) } }

Результат выполнения кода:

Array<File> ['src', 'build.gradle', 'settings.gradle', 'README.md']

Пример

Получим список только файлов с расширением ".txt":

val dir = File("documents") val txtFiles = dir.listFiles { file -> file.extension == "txt" } if (txtFiles != null) { for (file in txtFiles) { println(file.name) } }

Результат выполнения кода:

Array<File> ['notes.txt', 'data.txt', 'report.txt']

Пример

Использование FileFilter для получения только директорий:

val dir = File("projects") val directories = dir.listFiles(File::isDirectory) if (directories != null) { for (subdir in directories) { println(subdir.name) } }

Результат выполнения кода:

Array<File> ['kotlin-app', 'java-app', 'python-scripts']

Пример

Обработка случая, когда файл не является директорией:

val file = File("test.txt") val files = file.listFiles() if (files == null) { println("Not a directory or directory doesn't exist") }

Результат выполнения кода:

String "Not a directory or directory doesn't exist"

Смотрите также