Функция toRelativeString
Функция toRelativeString преобразует абсолютный путь файла или директории
в относительный путь относительно указанной базовой директории.
Принимает в качестве параметра базовый путь base типа File или Path.
Возвращает строку с относительным путем.
Импорт
import java.io.File
Синтаксис
fun File.toRelativeString(base: File): String
fun Path.toRelativeString(base: Path): String
Пример
Получим относительный путь файла относительно базовой директории:
val baseDir = File("/home/user/projects")
val targetFile = File("/home/user/projects/src/main.kt")
val relativePath = targetFile.toRelativeString(baseDir)
println(relativePath)
Результат выполнения кода:
String "src/main.kt"
Пример
Получим относительный путь для файла в поддиректории:
val base = File("/var/www")
val file = File("/var/www/images/logo.png")
val res = file.toRelativeString(base)
println(res)
Результат выполнения кода:
String "images/logo.png"
Пример
Использование с объектом Path:
import 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)
Результат выполнения кода:
String "config/settings.yml"
Пример
Если файл находится вне базовой директории, будет возвращен абсолютный путь:
val baseDir = File("/home/user/documents")
val externalFile = File("/tmp/data.txt")
val res = externalFile.toRelativeString(baseDir)
println(res)
Результат выполнения кода:
String "/tmp/data.txt"
Пример
Работа с одинаковыми путями:
val base = File("/same/path")
val target = File("/same/path")
val res = target.toRelativeString(base)
println(res)
Результат выполнения кода:
String ""
Смотрите также
-
функцию
relativeTo,
которая возвращает относительный путь как объектFile -
функцию
resolve,
которая разрешает относительный путь относительно текущего -
функцию
normalize,
которая нормализует путь, удаляя избыточные элементы -
свойство
absolutePath,
которое возвращает абсолютный путь файла