Свойство canonicalPath

Свойство canonicalPath класса File возвращает абсолютный канонический путь к файлу или директории. Оно разрешает относительные пути, символические ссылки и специальные обозначения (например, . и ..) в пути, возвращая уникальное и однозначное представление пути в файловой системе.

Импорт

kotlinimport java.io.File

Синтаксис

kotlinval File.canonicalPath: String

Пример

Получим канонический путь для файла с относительным путем:

kotlinval file = File("./documents/report.txt")
val path = file.canonicalPath
println(path)

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

kotlinString "/home/user/documents/report.txt"

Пример

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

kotlinval file = File("../project/src/main.kt")
val path = file.canonicalPath
println(path)

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

kotlinString "/home/project/src/main.kt"

Пример

Сравним абсолютный и канонический пути для файла с символической ссылкой:

kotlinval file = File("/var/www/html")
val absolute = file.absolutePath
val canonical = file.canonicalPath

println("Absolute: $absolute")
println("Canonical: $canonical")

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

kotlinAbsolute: /var/www/html
Canonical: /srv/http

Пример

Использование canonicalPath для проверки существования файла и получения его реального расположения:

kotlinval file = File("~/config/settings.conf")

if (file.exists()) {
  val realPath = file.canonicalPath
  println("File found at: $realPath")
} else {
  println("File not found")
}

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

kotlinFile found at: /home/user/config/settings.conf

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

  • свойство absolutePath,
    которое возвращает абсолютный путь без разрешения символических ссылок
  • класс File,
    который представляет файл или директорию в файловой системе
  • функцию exists,
    которая проверяет существование файла или директории
  • функцию normalize,
    которая нормализует путь, удаляя избыточные элементы