2016-11-15 8 views
2

Я хотел бы сравнить два пути в той же папке рабочего пространства, и получить относительный путь между ними:Построить относительный путь между двумя путь к файлу

String firPath = "C:/toto/tata/test1/test2/img/1.jpg" // test example 
String secPath = "C:/toto/tata/test1/img/1.jpg" // test example 

И вернуть firstPath относительный путь от secondPath

example = "../../img/" 

Я нашел много примеров на разных языках (Python, .net, C++ ...):

How to get relative path from absolute path

compare path and get relative path between two files with javascript

... но нет решения с Java.

В большинстве случаев использование методов библиотек, и мне было интересно, есть ли у java те же методы, которые я мог бы использовать.

Благодарим за помощь.

ответ

4

Что можно добавить в Java 7 Path.relativize?

Path first = Paths.get(firstPath); Path second = Paths.get(secondPath); 
System.out.println(first.relativize(second)); 
System.out.println(second.relativize(first)); 
+0

Благодарим за помощь, но я все еще в java 7. Надеюсь, есть еще одно решение для более старой версии java. – Beginner

+1

@Beginner Paths ware, введенный в Java 7, а не 8. Также связанный JavaDoc подтверждает, что этот метод должен быть доступен вам 'https: //docs.oracle.com/javase/7/...' – Pshemo

+0

Вы правы. Я попробовал это, на всякий случай, и он работает. Большое спасибо. – Beginner