Я хочу проверить, является ли данный String файлом или каталогом, я пробовал методы isFile() и isDirectory() класса File, но проблема в том, что если файл или каталог не существует этих методов возвращает ложь, потому что, как указано в Javadoc:Java isFile(), isDirectory() без проверки на существование
ISFILE():
истинно, если и только если файл обозначается этим абстрактным pathname существует и является нормальным файлом; ложь в противном случае
isDirectory():
истинно, если и только если файл обозначается этим абстрактным пути существует и является каталогом; ложь в противном случае
В основном мне нужны два метода без оговорки существуют ...
Так я хочу, чтобы проверить, если данная строка соответствует формату каталога или соответствует формату файла, в многоплатформенности контекст (так, должен работать на Windows, Linux и Mac Os X).
Существует ли какая-либо библиотека, предоставляющая эти методы? Какая может быть наилучшая реализация этих методов?
UPDATE
В случае строки, которая может быть как (без расширения), по умолчанию должно быть идентифицирован как каталог, если файл с этим путем не существует.
Apache commons.io может вам помочь. Возможно, используя FileUtils.sizeof() или что-то в этом роде ... – Alfabravo
Как Java знает, указывает ли путь, указывающий на то, что не существует, - это файл или каталог, если там ничего нет? Формат имени пути отсутствует, чтобы определить, является ли что-то файлом или каталогом во всех ОС. –
То, что вы хотите, невозможно, нет никакой разницы между файлом и каталогом, если он фактически не существует в файловой системе (и имеет необходимые атрибуты, предоставляемые ОС). Расширения и тому подобное могут быть только вашим собственным предположением. Сторона примечания: расширение не существует ни в настоящее время, это старый, старый артефакт, поступающий из DOS. – bestsss