Свойство parent
Свойство parent доступно для объектов класса File и возвращает
родительскую директорию текущего файла или директории. Если путь не имеет
родительской директории, возвращается null.
Импорт
import java.io.File
Синтаксис
val File.parent: String?
val File.parentFile: File?
Пример
Получим родительскую директорию файла:
val file = File("/home/user/documents/report.txt")
val parentPath: String? = file.parent
println(parentPath)
Результат выполнения кода:
String "/home/user/documents"
Пример
Получим родительскую директорию в виде объекта File:
val file = File("/home/user/documents/report.txt")
val parentFile: File? = file.parentFile
println(parentFile?.absolutePath)
Результат выполнения кода:
String "/home/user/documents"
Пример
Проверим случай, когда родительская директория отсутствует:
val file1 = File("file.txt")
val file2 = File("/")
println(file1.parent)
println(file2.parent)
Результат выполнения кода:
null
null
Пример
Использование parent для создания путей:
val file = File("/var/www/html/index.html")
val parentDir = file.parentFile
if (parentDir != null) {
val backupFile = File(parentDir, "index.backup.html")
println(backupFile.absolutePath)
}
Результат выполнения кода:
String "/var/www/html/index.backup.html"
Пример
Проверка существования родительской директории:
val file = File("/tmp/newdir/file.txt")
val parent = file.parentFile
if (parent != null && !parent.exists()) {
parent.mkdirs()
println("Created directory: " + parent.absolutePath)
}
file.createNewFile()
println("File created: " + file.exists())
Результат выполнения кода:
String "Created directory: /tmp/newdir"
Boolean true
Пример
Получение цепочки родительских директорий:
val file = File("/a/b/c/d/e.txt")
var current: File? = file.parentFile
while (current != null) {
println(current.absolutePath)
current = current.parentFile
}
Результат выполнения кода:
String "/a/b/c/d"
String "/a/b/c"
String "/a/b"
String "/a"
Смотрите также
-
свойство
path,
которое возвращает полный путь к файлу -
свойство
extension,
которое возвращает расширение файла -
свойство
name,
которое возвращает имя файла -
свойство
absolutePath,
которое возвращает абсолютный путь к файлу