Функция listFiles

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

Импорт

kotlinimport java.io.File

Синтаксис

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

Пример

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

kotlinval dir = File(".")
val files: Array<File>? = dir.listFiles()

if (files != null) {
  for (file in files) {
    println(file.name)
  }
}

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

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

Пример

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

kotlinval dir = File("documents")
val txtFiles = dir.listFiles { file -> file.extension == "txt" }

if (txtFiles != null) {
  for (file in txtFiles) {
    println(file.name)
  }
}

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

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

Пример

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

kotlinval dir = File("projects")
val directories = dir.listFiles(File::isDirectory)

if (directories != null) {
  for (subdir in directories) {
    println(subdir.name)
  }
}

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

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

Пример

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

kotlinval file = File("test.txt")
val files = file.listFiles()

if (files == null) {
  println("Not a directory or directory doesn't exist")
}

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

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

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