As part of the requirements for POSIX compliance, the Windows NT File
System (NTFS) provides a case-sensitive file and directory naming
convention. Even though NTFS and the POSIX subsystem each handle
case-sensitivity well, 16-bit Windows-based, MS-DOS-based, OS/2-based,
and Win32-based applications do not.
In NTFS, you can create unique file names, stored in the same
directory, that differ only in case. For example, the following
filenames can coexist in one directory on an NTFS volume:
However, if you attempt to open one of these files in a Win32
application, such as Notepad, you would only have access to one of the
files, regardless of the case of the filename you type in the Open
File dialog box.
Other inconsistencies also exist. The Windows NT Command Prompt and
File Manager correctly display the names of the files. However, normal
commands, such as COPY, fail when you attempt to access one or more
filenames that differ only in case.
NTFS supports two slightly different modes of operation that can be
selected by the subsystem of the application interacting with NTFS.
The first is fully case sensitive and demands that file names supplied
by the application match the names stored on disk including case if
the file on disk is to be selected. The second mode of operation is
case preserving but not case sensitive. This means that applications
can select files on the disk even if the supplied name differs in case
from the name stored on the disk. Note that both modes preserve the
case used to create the files. The difference in behavior noted here
applies only when an application needs to locate an existing file.
POSIX takes advantage of the full case sensitive mode, while MS-DOS,
WOW, and Win32 subsystems use the case insensitive mode.