Подтвердить что ты не робот

Пути файлов в среде Windows не чувствительны к регистру?

Можно ли предположить, что локальные и сетевые пути Windows не чувствительны к регистру?

4b9b3361

Ответ 1

Да. Windows (локальные) файловые системы, включая NTFS, а также FAT и варианты, нечувствительны к регистру (обычно). Основная реализация сетевой файловой системы может быть чувствительной к регистру, однако большинство программ, которые позволяют Windows получить к ней доступ (например, SMB), автоматически создадут файловые системы, чувствительные к регистру как нечувствительный к Windows.

Подробнее, я прочитал раздел в статье Википедии о именах файлов.

Ответ 2

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

В Windows все файлы в конечном итоге открываются с помощью API CreateFile - если флажок FILE_FLAG_POSIX_SEMANTICS передается на вызов (и файл доступ к системе зависит от регистра), тогда файл будет открыт на основе точного совпадения имени. Если FILE_FLAG_POSIX_SEMANTICS не передается, то файловая система открывает файл, не учитывающий регистр, и откроет один из файлов с соответствующим именем. Если есть более одного, то undefined относительно того, какой из них фактически открыт.

Большинство реализаций выполнения C и С++ в Windows не предоставляют никакого доступа к этому механизму и никогда не используют этот флаг, поэтому единственный способ получить доступ к зависящим от регистра поведения поведениям - это использовать API Windows напрямую.

tl; dr - Ваше языковое исполнение, вероятно, подвергает вашу файловую систему нечувствительности к регистру или сохранению регистра. Если вы используете API Windows напрямую, вы можете получить доступ к поддерживаемым файловым системам в полной мере. Senstive.