Учитывая два объекта Path p1 и p2 (которые не обязательно указывают на существующий файл), как я могу проверить, что базовые пути эквивалентны? То есть объекты Path, возникающие из
/path/to/something
/path/to/../fdsfaf/something
, должны (например) рассматриваться как эквивалентные / одинаковые.
Мои нынешние подходы были бы
- Используйте Files.isSameFile
- Сначала примените .normalize () к каждому объекту Path, а затем используйте .equals для одного из новых путей.
Приводят ли эти два подхода к одному и тому же результату ? Я попытался прочитать документацию, и мое текущее предположение состоит в том, что результаты должны быть одинаковыми.
Редактировать: Несколько человек предположили, что следующая статья отвечает на мой вопрос. Я утверждаю, что это неверно, поскольку объясняет только то, почему Files.isSameFile () отличается от Path # equals (). Вопрос (и его ответы) не учитывают, имеет ли значение .normalize (). Java NIO - Чем Files.isSameFile отличается от Path.equals