8

В Linux вы можете иметь пример файлов .JPG и example.jpg в одном каталоге.

В Windows у вас есть расширения с учетом регистра, но вы не можете поместить эти два файла в один каталог. Почему бы и нет?

2 ответа2

31

В Windows у вас есть расширения с учетом регистра, но вы не можете поместить эти два файла в один каталог. Почему бы и нет?

Если диск отформатирован как NTFS, вы можете использовать оба example.JPG и example.jpg .

Однако, если вы попытаетесь открыть один из этих файлов в приложении Win32, например, в «Блокноте», у вас будет доступ только к одному из файлов, независимо от того, какой файл указан в диалоговом окне «Открыть файл».


Имена файлов чувствительны к регистру на томах NTFS

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

В NTFS вы можете создавать уникальные имена файлов, хранящиеся в одном каталоге, которые отличаются только регистром. Например, следующие имена файлов могут сосуществовать в одном каталоге на томе NTFS:

CASE.TXT
case.txt
case.TXT

Однако, если вы попытаетесь открыть один из этих файлов в приложении Win32, например, в «Блокноте», у вас будет доступ только к одному из файлов, независимо от того, какой файл указан в диалоговом окне «Открыть файл».

...

NTFS поддерживает два слегка отличающихся режима работы, которые могут быть выбраны подсистемой приложения, взаимодействующей с NTFS. Первый полностью учитывает регистр и требует, чтобы имена файлов, предоставляемые приложением, совпадали с именами, хранящимися на диске, включая случай, если файл на диске должен быть выбран. Второй режим работы - это сохранение регистра, но без учета регистра. Это означает, что приложения могут выбирать файлы на диске, даже если указанное имя отличается в случае от имени, сохраненного на диске. Обратите внимание, что оба режима сохраняют регистр, использованный для создания файлов. Отмеченное здесь различие в поведении применяется только тогда, когда приложению необходимо найти существующий файл. POSIX использует полный режим с учетом регистра, а подсистемы MS-DOS, WOW и Win32 используют режим без учета регистра.

Имена исходных файлов чувствительны к регистру на томах NTFS:


На практике я не смог этого добиться

Чтобы получить два файла в одном и том же каталоге, отличающихся только регистром, вам необходимо включить подсистему Posix .

POSIX использует полный режим с учетом регистра, а подсистемы MS-DOS, WOW и Win32 используют режим без учета регистра.

Для включения Posix смотрите:

6

NTFS чувствительна к регистру (и в зависимости от того, как вы смотрите на стекло, это может быть хорошо или плохо). В действительности, достижение нечувствительности к регистру было проблемой на ранних этапах, так как вам не нужно было различать значения ASCII для аз и аз.

Невозможно сделать Windows (ОС) чувствительной к регистру, даже несмотря на то, что NTFS (файловая система), используемая в наши дни под управлением ОС Windows, может поддерживать POSIX.

По словам Microsoft, вы могли бы привести пример.JPG и example.jpg находятся в одном и том же каталоге на NTFS (нажмите здесь), но ОС (все версии Windows) не поддерживает их, что делает бессмысленной файловую систему :)

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

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