Почему File.isAbsolute () зависит от платформы, если класс File не зависит от платформы? - PullRequest
0 голосов
/ 01 марта 2011

Из File класса JavaDoc:

Абстрактное представление имен файлов и каталогов.

Пользовательские интерфейсы и операционные системы используют зависящие от системы строки имен файлов для имен файлов и каталогов. Этот класс представляет абстрактное, независимое от системы представление иерархических путей.

Почему метод .isAbsolute() зависит от платформы? (возвращает другой результат для /tmp в Win и Linux) и не проверяет, является ли файл абсолютным либо в Linux, либо в Windows? Как класс File может угадать файл какой платформы я пытаюсь представить с помощью File в моем коде? Я не обязательно представляю локальную файл файловой системы.

Ответы [ 2 ]

2 голосов
/ 01 марта 2011

Должно быть какое-то представление о том, какая платформа вам интересна, и текущая платформа - довольно удачное предположение!

В Linux /tmp является абсолютным. В Windows это не так - это относительно вашего текущего диска.

1 голос
/ 01 марта 2011

Я не обязательно представляю файл локальной файловой системы

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

Существуют и другие системные независимые классы, такие как URI и URL , которые вы должны использовать вместо этого (URL имеет некоторые недостатки дизайна, поэтому предпочитайте URI).

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