Функция 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"
Смотрите также
-
класс File
,
основной класс для работы с файловой системой -
функция isDirectory
,
проверяет, является ли файл директорией -
функция exists
,
проверяет существование файла или директории -
функция walk
,
рекурсивный обход файловой системы