( фон )
Я использую Java.io.File
для поиска в каталоге Windows. Обычно пользователь вводит путь к каталогу, и я проверяю путь с помощью file.isDirectory()
. Если путь неверен, я прошу пользователя повторно ввести правильный путь. Получив действительный каталог, я продолжаю другие операции с файлами.
( проблема )
Теперь проблема возникает, когда пользователь входит в корневой каталог. Например, e:
. В этом случае file.list()
обеспечивает следующий вывод [.classpath, .project, .settings, bin, src]
.
Как вы можете видеть, это не включает никаких папок.
Однако, если он вводит e:\
, то file.list()
извлекает также существующие каталоги [$RECYCLE.BIN, <some directories>, <some files>, RECYCLER, System Volume Information]
На этот раз у нас нет classpath, проекта и т. Д., Но оба e:
и e:\
считаются действительными каталогами.
1) Может кто-нибудь объяснить это странное поведение?
2) Кроме того, чтобы избежать этой проблемы, есть лучший способ, чем добавить грязную ручную проверку для x:
и преобразовать ее в x:\
?