Нечувствительный к регистру доступ к каталогу в Java в Unix - PullRequest
0 голосов
/ 12 июля 2011

Я работаю над Unix, который использует имена файлов с учетом регистра и мне нужен способ доступа к ним без учета регистра.

В частности, в то время, когда программе нужно попасть в каталог / images подпапка проекта.Но поскольку этот каталог создается пользователем вручную, иногда он может называться Images, IMAGES, iMaGes ... Вы понимаете.

Учитывая, что в любой папке проекта гарантированно будет только один каталог изображений.Как я могу получить к нему доступ напрямую, не получая весь список каталогов и не просматривая его?

Ответы [ 4 ]

3 голосов
/ 12 июля 2011

Нет другого способа, кроме как прочитать полный список имен каталогов и проверить всех и каждого, соответствует ли он вашему шаблону.

Вы можете скрыть его, используя FilenameFilter, которыйфильтрует все имена папок, которые не соответствуют вашему шаблону (например, любая папка, имя которой в нижнем регистре равно images).Это может быть лучшим подходом, потому что он вернет всех кандидатов (iaw: ./Images, ./imaGes, ./IMAGES, если у вас есть творческие пользователи, которые размещают более одной папки изображений;))

2 голосов
/ 12 июля 2011

В Java 7 есть нечто, называемое PathMatcher , которое позволяет вам использовать регулярные выражения для поиска файла.

1 голос
/ 12 июля 2011

Не существует решения, которое бы не включало бы циклический перебор по или списку записей в каталоге или списку возможных перестановок строчных и прописных букв.

Unix чувствителен к регистру , и запрос /image при наличии только /Image не даст вам положительного ответа.

Единственное исключение - когда используемая файловая система не чувствительна к регистру (например, варианты FAT не чувствительны к регистру), но обычно это применимо только к внешним носителям, обычно.

0 голосов
/ 12 июля 2011

Если это папка, созданная пользователем, предоставьте ему интерфейс выбора файлов, чтобы выбрать папку.Либо так, либо при создании проекта создайте папку с изображениями так, чтобы это было предсказуемо позже.

...