![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| leniviy |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: 1 Всего: 5 |
В папке C:\4 лежат файлы: raa.xml, ŕáâ.xml, абв.xml .
консольная команда dir /X показывает, что для двух из них есть 8.3 имена:
Но GetShortPathNameW() возвращает 8.3 имя только для одного из них. "c:\4\ŕáâ.xml" не преобразуется:
Это сообщение отредактировал(а) leniviy - 6.10.2012, 12:36 |
||||||
|
|||||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Есть у меня одно предположение...
GetShortPathNameW в отличии от честного FindFirstFileW проверяет участки пути на соответствие имени формату 8.3 и разрешённым символам, которые зависят от установленной кодовой страницы. То есть GetShortPathNameW не заменяет тупо cFileName на cAlternateFileName (если последнее имя определено в WIN32_FIND_DATA), а пытается ещё и выяснить, нужно ли заменять или нет. Предположение возникло после изучения доступных исходных кодов win2000, некогда украденных и выложенных в сеть. Правда, со времён win2000 много могло поменяться... PS Не могли бы Вы попробовать и пути с символами ŕáâ, что получится? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| leniviy |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: 1 Всего: 5 |
Мне уже не интересно.
Я успел посмотреть, что cmd.exe при развертывании %%~sf не вызывает GetShortPathName(), а несколько раз вызывает FindFirstFile() файл: c:\4ббб\4ааа\абв.xml
|
||||
|
|||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Может, интересно кому-то другому? GetShortPathName() тоже вызывает FindFirstFile()... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |