Как можно сравнить эквивалентность пути в Java? - PullRequest
0 голосов
/ 18 января 2020

Учитывая два объекта Path p1 и p2 (которые не обязательно указывают на существующий файл), как я могу проверить, что базовые пути эквивалентны? То есть объекты Path, возникающие из

/path/to/something
/path/to/../fdsfaf/something

, должны (например) рассматриваться как эквивалентные / одинаковые.

Мои нынешние подходы были бы

  1. Используйте Files.isSameFile
  2. Сначала примените .normalize () к каждому объекту Path, а затем используйте .equals для одного из новых путей.

Приводят ли эти два подхода к одному и тому же результату ? Я попытался прочитать документацию, и мое текущее предположение состоит в том, что результаты должны быть одинаковыми.

Редактировать: Несколько человек предположили, что следующая статья отвечает на мой вопрос. Я утверждаю, что это неверно, поскольку объясняет только то, почему Files.isSameFile () отличается от Path # equals (). Вопрос (и его ответы) не учитывают, имеет ли значение .normalize (). Java NIO - Чем Files.isSameFile отличается от Path.equals

...