Windows NTFS и чувствительность к регистру

Согласно Wikipedia NTFS допускает два одинаковых имени с разным регистром (например, Readme.txt или readme.txt ), и это предотвращается только API файлов Windows.

Текущие файловые системы Windows, такие как NTFS, чувствительны к регистру; это файл readme.txt, а файл Readme.txt может находиться в одном каталоге. Однако API для доступа к файлам в приложениях Windows нечувствителен к регистру, что делает имена файлов нечувствительными к регистру с точки зрения приложения. Следовательно, приложения имеют доступ только к одному из файлов, имена файлов которых различаются только регистром, и некоторые команды могут завершиться ошибкой, если указанное имя файла неоднозначно.

Переходя из Linux, я спрашиваю себя, каковы возможности того, что существуют оба файла, и что можно получить доступ только к одному из файлов, что делает его идеальной проблемой для безопасности. Что подразумевается под «Windows API». Есть ли другой способ получить доступ к этим дублированным файлам? Можно ли получить доступ к файловой системе напрямую с помощью драйвера диска (драйвера форматирования)?


person Martin Kersten    schedule 30.11.2015    source источник


Ответы (2)


Файловая система NTFS чувствительна к регистру и обрабатывает файлы с одним и тем же именем, но с разным регистром, как разные файлы.

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

А именно, чувствительность к регистру при открытии или создании файла опосредуется флагом FILE_FLAG_POSIX_SEMANTICS, переданным в CreateFile.

person Chris Becke    schedule 30.11.2015

Как сказал Крис Бек:

Файловая система NTFS чувствительна к регистру и обрабатывает файлы с одним и тем же именем, но с разным регистром, как разные файлы.

К счастью, если теперь вы хотите иметь файлы в верхнем и нижнем регистре, новое обновление для разработчиков Windows 10 позволяет вам включить эту функцию в определенных папках в целях разработки. Я просто предупреждаю вас, что вам не следует полагаться на эту функцию, потому что более старые версии Windows не поддерживают ее, и я не знаю, что может случиться. Узнайте, как это сделать, здесь: https://www.howtogeek.com/354220/how-to-enable-case-sensitive-folders-on-windows-10/

person Humberto Gomes    schedule 13.07.2019