У меня есть путь к файлу в строковой форме. В Java мне нужно определить, существует ли этот файл в файловой системе (и наш код должен быть кросс-платформенным, поскольку он работает в Windows, Linux и OS X).Нечувствительность к регистру File.equals в зависящей от регистратора файловой системе
Проблема в том, что случай пути к файлу и самого файла может не совпадать, даже если они представляют один и тот же файл (предположительно это происходит из-за того, что они возникли из Windows, и это несоответствие не было замечено).
Например, у меня есть путь к файлу «ABC.txt». В файловой системе существует файл с именем «abc.txt». Следующий код будет возвращать истинное на Windows, но ложные на Linux:
new File("ABC.txt").exists();
Каков наилучший способ определить, если файл существует, и если он существует, чтобы вернуть дескриптор файла на файл система?
Да, это возможно, но проблема все еще существует, если каталоги на пути являются неправильным случаем. Решение может оказаться своего рода рекурсивным алгоритмом, который поднимается в дереве каталогов, не просматривая без учета регистра. Но я надеюсь на лучшее решение! – jwaddell
@jwaddell: я не думаю, что есть лучшее решение, так как имя файла/путь может находиться в любом корпусе, а linux os рассматривает его в режиме, чувствительном к регистру. –
Похоже, я неохотно реализую это решение, а также рекурсивную проверку пути. – jwaddell