Свойство canonicalPath
Свойство canonicalPath класса File возвращает
абсолютный канонический путь к файлу или директории.
Оно разрешает относительные пути, символические ссылки
и специальные обозначения (например, . и ..)
в пути, возвращая уникальное и однозначное представление
пути в файловой системе.
Импорт
import java.io.File
Синтаксис
val File.canonicalPath: String
Пример
Получим канонический путь для файла с относительным путем:
val file = File("./documents/report.txt")
val path = file.canonicalPath
println(path)
Результат выполнения кода:
String "/home/user/documents/report.txt"
Пример
Получим канонический путь для файла с использованием родительской директории:
val file = File("../project/src/main.kt")
val path = file.canonicalPath
println(path)
Результат выполнения кода:
String "/home/project/src/main.kt"
Пример
Сравним абсолютный и канонический пути для файла с символической ссылкой:
val file = File("/var/www/html")
val absolute = file.absolutePath
val canonical = file.canonicalPath
println("Absolute: $absolute")
println("Canonical: $canonical")
Результат выполнения кода:
Absolute: /var/www/html
Canonical: /srv/http
Пример
Использование canonicalPath для проверки существования файла
и получения его реального расположения:
val file = File("~/config/settings.conf")
if (file.exists()) {
val realPath = file.canonicalPath
println("File found at: $realPath")
} else {
println("File not found")
}
Результат выполнения кода:
File found at: /home/user/config/settings.conf
Смотрите также
-
свойство
absolutePath,
которое возвращает абсолютный путь без разрешения символических ссылок -
класс
File,
который представляет файл или директорию в файловой системе -
функцию
exists,
которая проверяет существование файла или директории -
функцию
normalize,
которая нормализует путь, удаляя избыточные элементы