I know the Windows OS is (generally) case insensitive. Is this true for all the Windows OSes (from Windows 95 up to Windows 7)? Is there any registry setup to make Windows case sensitive?
36 Answers
Yes, this is true for all versions of Windows. There is no way to make Windows case sensitive. Keep in mind though that some apps which were originally developed for Unix/Linux and then ported may be case-sensitive. Cygwin, for example, is case sensitive. This behavior is extremely rare though.
12Microsoft added a new case sensitive flag (attribute) that can be applied to NTFS directories (folders). For directories that have this flag set (enabled), all operations on files in that directory are case sensitive, regardless of whether FILE_FLAG_POSIX_SEMANTICS was specified. This means that if you have two files that differ only by case in a directory marked as case sensitive, all applications will be able to access them.
Starting with Windows 10 build 17107, Microsoft has added the ability to view and modify this flag to the fsutil.exe command.
To check if a directory is case sensitive, run the following command:
fsutil.exe file queryCaseSensitiveInfo <path>To mark a directory as case sensitive, or case insensitive respectively:
fsutil.exe file setCaseSensitiveInfo <path> enable
fsutil.exe file setCaseSensitiveInfo <path> disable Actually, this depends on the API / Windows subsystem you (your program) use.
If you use the "Windows API" (the standard for Windows apps), then filenames are case-insensitive. However, if you use the POSIX subsystem (aka Windows Services for Unix), you can enable case-sensitivity.
See e.g. this MS Support article: Enable case sensitive behavior with Windows XP and Interix Subsystem or SFU
Cygwin tries to emulate Unix. Thus it needs to inherit case sensitivity to not break applications. Windows on itself isn't case sensitive. It's about the file system. You can read more about it in File system, File systems under Microsoft Windows (Wikipedia).
5This is from here. You can set the HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive registry value to 0 as other authors suggested. Create a file named add.reg with the following content and run it.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000Then use Cygwin to work with case-sensitive filenames.
In order to do so, you need to mount NTFS filesystems with posix=1 option in your /etc/fstab, as this article suggests. Here's a snippet from my 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 0Once the above is done, you'll be able to deal with case-sensitive filenames using bash, mc, git etc.
Make sure to reboot after editing both.
Barfieldmv is correct. The filesystem is indeed case sensitive and files are stored with their appropriate case. The file access layer is responsible for removing the case when matching files to new file descriptors
3