Я тестировал одно из своих приложений, чтобы увидеть, как оно обрабатывает имена файлов в ПРОПИСНЫХ РЕГИСТРАХ. Я думал, что библиотеки и система Android чувствительны к регистру имен файлов, однако в конце концов я обнаружил, что файлы на SD-карте сопоставляются без учета регистра.
Вот пример с телефона Samsung Ace (мой Nexus 4 ведет себя аналогично)
adb оболочка $ pwd /mnt/sdcard/testDaisyReader/casesensitivebook $ эхо "" > NCC.HTML $ лс -л -rwxrwxr-x система sdcard_rw 1 19 ноября 2013 г. 18:57 NCC.HTML $ ls -l NCC.HTML -rwxrwxr-x система sdcard_rw 1 19 ноября 2013 г. 18:57 NCC.HTML $ ls -l ncc.html -rwxrwxr-x система sdcard_rw 1 19 ноября 2013 г. 18:57 ncc.html $ лс -л -rwxrwxr-x система sdcard_rw 1 19 ноября 2013 г. 18:57 NCC.HTML $
Я ожидал, что команды ls -l ncc.html
не найдут созданный мной файл, однако, похоже, это так. Мое приложение для Android также сопоставляет файлы без учета регистра.
У кого-нибудь из вас есть контрпримеры? Я хотел бы знать, можно ли предположить, что имена файлов совпадают на SD-карте в Android, например в Windows, без учета регистра.
Примечания: 1. файловая система на SD-картах - FAT32 2. Я нашел 2 связанных сообщения, которые подразумевают, что файлы на SD-карте чувствительны к регистру:
Как я могу открыть HTML-файл, скопированный с ПК, на SD-карту телефона?
Сам Android основан на Linux, который предназначен для файловых систем с учетом регистра. Внутреннее хранилище обычно находится в файловой системе ext или ext4 с учетом регистра. SD-карты обычно отформатированы в файловой системе FAT 32, нечувствительной к регистру. Хотя Android может поддерживать использование других файловых систем на SD-карте, ПК с Windows не могут, поэтому форматировать SD-карту с другой файловой системой необычно, и если вы это сделаете, вы не сможете использовать SD-карту на ПК с Windows ( через устройство чтения карт памяти), а также нельзя использовать телефон в качестве запоминающего устройства USB при подключении к ПК.