4

Является ли чувствительность к регистру стандартом операционной системы или основана на файловой системе?

Я знаю, что в Windows вы не можете иметь два файла с одинаковым именем, но в Linux вы можете это сделать, если регистр символов отличается.

3 ответа3

3

Это может быть и то и другое.

В Windows основная файловая система (NTFS) фактически поддерживает регистрозависимость. Но оболочка (проводник) этого не позволяет.

Вы по-прежнему можете взаимодействовать с файловой системой в соответствии с правилами POSIX (где доступ будет чувствителен к регистру), передав соответствующий флаг при вызове CreateFile . Хотя это не рекомендуется и, вероятно, не следует делать в системе на базе Windows.

Из именования файлов, путей и пространств имен:

Не предполагайте чувствительность к регистру. Например, считайте имена OSCAR, Oscar и oscar одинаковыми, хотя некоторые файловые системы (например, файловая система, совместимая с POSIX) могут считать их разными. Обратите внимание, что NTFS поддерживает семантику POSIX для чувствительности к регистру, но это не поведение по умолчанию.

1

Кажется, что в Википедии есть некоторая достоверная информация, которая может помочь ответить на ваш вопрос:

В файловых системах Unix имена файлов обычно чувствительны к регистру. Старые файловые системы Windows (VFAT, FAT32) не чувствительны к регистру (в одном каталоге не может быть readme.txt и Readme.txt), но сохраняют регистр, то есть запоминают регистр букв. Исходная файловая система FAT12 не чувствительна к регистру. Современные файловые системы Windows, такие как NTFS, чувствительны к регистру; это readme.txt, а Readme.txt может существовать в одном каталоге. Windows запрещает пользователю создавать второй файл, отличающийся только случаем из-за проблем совместимости со старым программным обеспечением, не предназначенным для такой операции

Источник: Википедия

Причина, по которой Windows чувствительна к регистру, также может быть найдена в статье поддержки здесь:

Как часть требований к соответствию POSIX, файловая система Windows NT (NTFS) предусматривает соглашение о присвоении имен файлов и каталогов с учетом регистра. Хотя NTFS и подсистема POSIX хорошо справляются с чувствительностью к регистру, 16-разрядные приложения на базе Windows, MS-DOS, OS/2 и Win32 этого не делают.

Википедия описывает это соответствие здесь: POSIX. Хотя Windows не указана как полностью POSIX-совместимая.

0

Чувствительность к регистру основана на файловой системе. В мире Windows FAT, VFAT и FAT32 нечувствительны к регистру, что означает, что foo.txt и Foo.txt не могут существовать как отдельные файлы в одном каталоге. NTFS чувствительна к регистру, как и большинство современных файловых систем, используемых в мире Linux/UNIX (EXT2/3/4, ReiserFS, ZFS и т.д.). Foo.txt может счастливо сосуществовать с foo.txt , FOO.TXT и другими.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .