Стажировка
Открыта запись на бесплатный пробный месяц! Жми для подробностей! →
624 of 1310 menu
По вашим просьбам сделал СВЕЖУЮ ОФЛАЙН ВЕРСИЮ номер 4 (временную). Рекомендую скачать на случай проблем с доступностью сайта.

Функция 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,
    которое возвращает абсолютный путь файла