Windows API для доступа к чувствительным к регистру путям (Bash-on-Ubuntu-on-Windows)

Bash-on-Ubuntu-on-Windows поддерживает регистрозависимые пути к файлам. Это означает, что я могу создать два файла или каталоги, имена которых отличаются только заглавными буквами. У меня проблемы с доступом к этим файлам.

Бег

bash -c "touch Magic ; mkdir magic ; echo Secret! > magic/secret"

Создает имена файловMagicкаталог с именемmagic и имена файловsecret в этом каталоге.

bash -c "ls -lR" доходность

.:
total 0
drwxrwxrwx 2 root root 0 Aug 23 10:37 magic
-rwxrwxrwx 1 root root 0 Aug 23 10:37 Magic

./magic:
total 0
-rwxrwxrwx 1 root root 8 Aug 23 10:37 secret

(Я не уверен, почему я получаюroot, поскольку это не пользователь по умолчанию, но это не похоже на мой вопрос.)

Проводник Windows показывает:

Сейчас, покаbash может легко получить доступ кmagic/secret Файл в каталоге, Windows, кажется, рассматривает и каталог, и файл как одно и то же. Поэтому, дважды щелкнув каталог, я получаю сообщение об ошибке «имя каталога недействительно».

То же самое касается использованияcdкак я получаюThe directory name is invalid. распечатанный.

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

Ответы на вопрос(1)

Ваш ответ на вопрос