Свойство parent

Свойство parent доступно для объектов класса File и возвращает родительскую директорию текущего файла или директории. Если путь не имеет родительской директории, возвращается null.

Импорт

kotlinimport java.io.File

Синтаксис

kotlinval File.parent: String?
kotlinval File.parentFile: File?

Пример

Получим родительскую директорию файла:

kotlinval file = File("/home/user/documents/report.txt")
val parentPath: String? = file.parent
println(parentPath)

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

kotlinString "/home/user/documents"

Пример

Получим родительскую директорию в виде объекта File:

kotlinval file = File("/home/user/documents/report.txt")
val parentFile: File? = file.parentFile
println(parentFile?.absolutePath)

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

kotlinString "/home/user/documents"

Пример

Проверим случай, когда родительская директория отсутствует:

kotlinval file1 = File("file.txt")
val file2 = File("/")

println(file1.parent)
println(file2.parent)

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

kotlinnull
null

Пример

Использование parent для создания путей:

kotlinval file = File("/var/www/html/index.html")
val parentDir = file.parentFile

if (parentDir != null) {
    val backupFile = File(parentDir, "index.backup.html")
    println(backupFile.absolutePath)
}

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

kotlinString "/var/www/html/index.backup.html"

Пример

Проверка существования родительской директории:

kotlinval 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())

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

kotlinString "Created directory: /tmp/newdir"
Boolean true

Пример

Получение цепочки родительских директорий:

kotlinval file = File("/a/b/c/d/e.txt")
var current: File? = file.parentFile

while (current != null) {
    println(current.absolutePath)
    current = current.parentFile
}

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

kotlinString "/a/b/c/d"
String "/a/b/c"
String "/a/b"
String "/a"

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

  • свойство path,
    которое возвращает полный путь к файлу
  • свойство extension,
    которое возвращает расширение файла
  • свойство name,
    которое возвращает имя файла
  • свойство absolutePath,
    которое возвращает абсолютный путь к файлу