Java File.isDirectory () возвращает False для каталога в Linux - PullRequest
6 голосов
/ 16 марта 2010

Пожалуйста, посмотрите фрагмент кода:

File[] additionalFiles = new File(FILE_PATH).listFiles();
boolean isDirectory = file.isDirectory();

Я проверил, что путь к каталогу указан правильно, и когда я запускаю код в Windows, значение isDirectory равно true (как и должно быть). Любые предложения относительно того, почему это происходит в Linux (RedHat Enterprise Linux)?

Ответы [ 3 ]

6 голосов
/ 16 марта 2010

Символические ссылки не читаются как каталоги, если я правильно помню. Правильный путь это:

 new File(FILE_PATH).getCanonicalFile().isDirectory(); 

(ПРИМЕЧАНИЕ: не проверено, у меня нет Linux-бокса, чтобы легко это проверить).

5 голосов
/ 16 февраля 2011

Я столкнулся с этой проблемой однажды. Мой случай такой забавный, я читал путь из файла свойств, и этот путь содержал символ табуляции в конце строки. По этой причине путь не был распознан как каталог

0 голосов
/ 16 марта 2010

Оформить заказ по этой ссылке http://bugs.sun.com/view_bug.do;jsessionid=56e03cb783aaf9725daf5ec8d8?bug_id=6539692

У вас может быть эта проблема.

В противном случае я бы предположил проблему с правами доступа к файлу (хотя это может привести к исключению безопасности, и я предполагаю, что ваш код не переносит его и не возвращает false), или это может быть проблема с символьной ссылкой, о которой я мало что знаю. *

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