РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
785 of 1163 menu

Метод relativize

Метод relativize класса Path возвращает новый объект Path, представляющий относительный путь от исходного пути к пути, переданному в качестве параметра. Иными словами, метод вычисляет, какой путь нужно пройти из точки, заданной текущим объектом Path, чтобы достичь точки, заданной аргументом. В параметр метода мы передаем путь, относительно которого нужно построить результат. Оба пути должны быть либо абсолютными, либо относительными, иначе будет выброшено исключение IllegalArgumentException.

Синтаксис

path.relativize(otherPath)

Пример

Давайте построим относительный путь от одного абсолютного пути к другому:

import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) { Path base = Paths.get("/home/user/docs"); Path target = Paths.get("/home/user/pictures"); Path res = base.relativize(target); System.out.println(res); } }

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

"../pictures"

Пример

Давайте построим относительный путь, когда один путь является вложенным в другой:

import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) { Path base = Paths.get("/home/user"); Path target = Paths.get("/home/user/docs/file.txt"); Path res = base.relativize(target); System.out.println(res); } }

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

"docs/file.txt"

Пример

Давайте построим относительный путь между двумя относительными путями:

import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) { Path base = Paths.get("abcde"); Path target = Paths.get("abcde/fghij"); Path res = base.relativize(target); System.out.println(res); } }

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

"fghij"

Пример

Если оба пути совпадают, метод вернет пустой путь:

import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) { Path base = Paths.get("/home/user/docs"); Path target = Paths.get("/home/user/docs"); Path res = base.relativize(target); System.out.println(res); System.out.println(res.toString().isEmpty()); } }

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

"" true

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

  • метод resolve,
    который присоединяет путь к текущему пути
  • метод normalize,
    который убирает из пути лишние элементы
  • метод toAbsolutePath,
    который превращает путь в абсолютный
  • метод getParent,
    который возвращает родительский путь
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить