Как построить относительный путь в Java из двух абсолютных путей (или URL)? - PullRequest
256 голосов
/ 15 октября 2008

Дано два абсолютных пути, например,

/var/data/stuff/xyz.dat
/var/data

Как можно создать относительный путь, который использует второй путь в качестве своей базы? В приведенном выше примере результат должен быть: ./stuff/xyz.dat

Ответы [ 22 ]

0 голосов
/ 27 января 2014

org.apache.ant имеет класс FileUtils с методом getRelativePath. Сам еще не пробовал, но стоит попробовать.

http://javadoc.haefelinger.it/org.apache.ant/1.7.1/org/apache/tools/ant/util/FileUtils.html#getRelativePath(java.io.File, java.io.File)

0 голосов
/ 15 октября 2008

псевдопользователей-код:

  1. Разделить строки с помощью разделителя пути ("/")
  2. Найдите наибольший общий путь путем итерации по результату разбитой строки (так что в итоге вы получите «/ var / data» или «/ a» в ваших двух примерах)
  3. return "." + whicheverPathIsLonger.substring(commonPath.length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...