Чувствительность к регистру в Windows фактически реализована в том, как приложение открывает файлы. NTFS может быть чувствительной к регистру файловой системой и может хранить файлы с одинаковыми именами, отличающимися только регистром в одном и том же каталоге.
В Windows все файлы в конечном итоге открываются с помощью API CreateFile - если в вызов передается флаг FILE_FLAG_POSIX_SEMANTICS
(а доступ к файловой системе изначально зависит от регистра), тогда файл будет открыт на основе точного совпадения имени. Если FILE_FLAG_POSIX_SEMANTICS
не передается, то файловая система открывает файл без учета регистра и открывает один из файлов с соответствующим именем. Если их больше одного, то не определено, какой из них действительно открыт.
Большинство реализаций C и C ++ во время выполнения в Windows не предоставляют никакого доступа к этому механизму и никогда не используют этот флаг, поэтому единственный способ получить доступ к чувствительным к регистру поведениям - это напрямую использовать Windows API.
tl; dr - ваша языковая среда выполнения, вероятно, выставляет вашу файловую систему без учета регистра или с учетом регистра. Если вы используете Windows API напрямую, вы можете получить доступ к поддерживаемым файловым системам с учетом регистра.