16

Я знаю, что ОС Windows (как правило) нечувствительна к регистру. Это правда для всех операционных систем Windows (от Windows 95 до Windows 7)? Есть ли настройки реестра, чтобы сделать Windows чувствительной к регистру?

6 ответов6

12

Да, это верно для всех версий Windows. Нет способа сделать Windows чувствительной к регистру. Имейте в виду, что некоторые приложения, которые были первоначально разработаны для Unix/Linux и затем портированы, могут быть чувствительными к регистру. Cygwin, например, чувствителен к регистру. Такое поведение крайне редко, хотя.

8

На самом деле, это зависит от подсистемы API / Windows, которую вы (ваша программа) используете.

Если вы используете « Windows API » (стандарт для приложений Windows), то имена файлов не чувствительны к регистру. Однако, если вы используете подсистему POSIX (или Windows Services for Unix), вы можете включить чувствительность к регистру.

См., Например, эту статью поддержки MS: Включение чувствительного к регистру поведения с Windows XP и Interix Subsystem или SFU

5

Cygwin пытается подражать Unix. Таким образом, он должен наследовать чувствительность к регистру, чтобы не ломать приложения. Windows сама по себе не чувствительна к регистру. Речь идет о файловой системе. Вы можете прочитать больше об этом в Файловая система, Файловые системы под Microsoft Windows (Википедия).

4

Это отсюда. Вы можете установить значение реестра HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive в 0 как предложили другие авторы. Создайте файл с именем add.reg со следующим содержимым и запустите его.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000

Затем используйте Cygwin для работы с именами файлов с учетом регистра.

Для этого вам нужно смонтировать файловые системы NTFS с posix=1 в вашем /etc/fstab , как предлагает эта статья . Вот фрагмент из моего fstab:

none                    /cygdrive       cygdrive        binary,posix=1,user             0 0
C:                      /cygdrive/c     ntfs            binary,posix=1,user,auto        0 0
C:/Users                /home           ntfs            binary,posix=1,user,auto        0 0

Как только вышеперечисленное будет сделано, вы сможете работать с именами файлов с учетом регистра, используя bash , mc , git и т.д.

Обязательно перезагрузите компьютер после редактирования обоих.

4

Microsoft добавила новый чувствительный к регистру флаг (атрибут), который можно применять к каталогам (папкам) NTFS. Для каталогов, в которых этот флаг установлен (включен), все операции с файлами в этом каталоге чувствительны к регистру независимо от того, был ли указан FILE_FLAG_POSIX_SEMANTICS. Это означает, что если у вас есть два файла, которые отличаются только регистром в каталоге, помеченном как чувствительный к регистру, все приложения смогут получить к ним доступ.

Начиная с Windows 10 build 17107, Microsoft добавила возможность просматривать и изменять этот флаг в команде fsutil.exe.

Чтобы проверить, является ли каталог чувствительным к регистру, выполните следующую команду:

fsutil.exe file queryCaseSensitiveInfo <path>

Чтобы пометить каталог как регистрозависимый или регистрозависимый соответственно:

fsutil.exe file setCaseSensitiveInfo <path> enable
fsutil.exe file setCaseSensitiveInfo <path> disable
3

Barfieldmv это правильно. Файловая система действительно чувствительна к регистру, и файлы хранятся в соответствующем регистре. Слой доступа к файлам отвечает за удаление случая при сопоставлении файлов с новыми файловыми дескрипторами

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