getCanonicalPath возвращает разные пути между разными платформами - PullRequest
0 голосов
/ 29 мая 2018

Одним из нижних методов в моем коде является получение канонического пути к временной папке с помощью функции file.getCanonicalPath() (файл был определен как File file = new File("/tmp")).Это работает в ОС Linux и Windows, но в macOS эта функция возвращает следующую строку - "/ private / tmp", даже если у меня есть папка tmp в моем домашнем каталоге и у меня нет каталога / private.Есть идеи, откуда взялся этот "приватный" каталог и почему этот метод не направляет меня в "/ tmp" в macOS, хотя он и доступен?

Примечание: если я создаю случайный, несуществующий объект File dir (File file = new File("/random")), он просто отлично вернет канонический путь.

1 Ответ

0 голосов
/ 29 мая 2018

Символическая ссылка, также называемая мягкой ссылкой, представляет собой особый тип файла, который указывает на другой файл, очень похожий на ярлык в Windows или псевдоним Macintosh.В отличие от жесткой ссылки, символическая ссылка не содержит данных в целевом файле.Он просто указывает на другую запись где-то в файловой системе.

В macOS /tmp является символической ссылкой на /private/tmp.Каталог /private существует и содержит tmp внутри него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...