Какова разница между каноническим путем и абсолютепатом? - программирование
Подтвердить что ты не робот

Какова разница между каноническим путем и абсолютепатом?

Возможный дубликат:
В чем разница между getPath(), getAbsolutePath() и getCanonicalPath() в Java?

Любая разница между этими двумя?

канонический путь и абсолютэпат?

Если есть разница, вам понадобится пример реального мира.

4b9b3361

Ответ 1

Разница в том, что существует только один канонический путь к файлу [1] в то время как в файле может быть много абсолютных путей (в зависимости от системы). Например, в системе Unix /usr/local/../bin совпадает с /usr/bin. getCanonicalPath() устраняет эти неоднозначности и возвращает (уникальный) канонический путь. Поэтому, если текущий каталог был /usr/local, то:

File file = new File("../bin");
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());

будет печатать:

../бен
/usr/local/../bin
/USR/бен

В предположении Voo: в Unix-системах getCanonicalPath() также разрешит символические ссылки, если существует символическая ссылка. Жесткие ссылки обрабатываются как обычные файлы (в основном это то, что они есть). Обратите внимание, однако, что для этих методов не требуется файл.

[1] Ну, не совсем. Как отмечает @Tom Hale в комментарии, если файловая система поддерживает жесткие связанные каталоги, может быть несколько канонических путей к данному файлу.

Ответ 2

Вот канонический путь .

С:/files/foo.txt

Ниже приведены абсолютные пути

  • С:/files/FOO.TXT

  • С:/files/FOO.txt

  • С:/files/foo.TXT

  • С:/FILES/FOO.TXT

Канонический путь - это абсолютный уникальный путь к файлу. Файл может иметь только один канонический путь и множество абсолютных путей.

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

Ответ 3

В файл может быть много абсолютных путей. Однако может существовать только один канонический путь к файлу. Прочтите это