Функция toRelativeString

Функция toRelativeString преобразует абсолютный путь файла или директории в относительный путь относительно указанной базовой директории. Принимает в качестве параметра базовый путь base типа File или Path. Возвращает строку с относительным путем.

Импорт

kotlinimport java.io.File

Синтаксис

kotlinfun File.toRelativeString(base: File): String
kotlinfun Path.toRelativeString(base: Path): String

Пример

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

kotlinval baseDir = File("/home/user/projects")
val targetFile = File("/home/user/projects/src/main.kt")
val relativePath = targetFile.toRelativeString(baseDir)
println(relativePath)

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

kotlinString "src/main.kt"

Пример

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

kotlinval base = File("/var/www")
val file = File("/var/www/images/logo.png")
val res = file.toRelativeString(base)
println(res)

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

kotlinString "images/logo.png"

Пример

Использование с объектом Path:

kotlinimport java.nio.file.Paths

val basePath = Paths.get("/opt/app")
val targetPath = Paths.get("/opt/app/config/settings.yml")
val relative = targetPath.toRelativeString(basePath)
println(relative)

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

kotlinString "config/settings.yml"

Пример

Если файл находится вне базовой директории, будет возвращен абсолютный путь:

kotlinval baseDir = File("/home/user/documents")
val externalFile = File("/tmp/data.txt")
val res = externalFile.toRelativeString(baseDir)
println(res)

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

kotlinString "/tmp/data.txt"

Пример

Работа с одинаковыми путями:

kotlinval base = File("/same/path")
val target = File("/same/path")
val res = target.toRelativeString(base)
println(res)

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

kotlinString ""

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

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