Если у вас есть путь типа «C:\foo\.\bar\..», есть ли простой способ с помощью Win32 API удалить квалификаторы каталога, чтобы упростить его до «C:\foo»?
Обновление: кажется, это более сложная проблема. В этом простом примере "C:\foo\.\bar\.." он работает как с PathCanonicalize(), так и с GetFullPathName(), чтобы в результате получить "C:\foo".
Однако путь, по которому я прохожу, имеет символическую ссылку. Допустим, я передаю «C:\NaNa\Boo\Bin\..», а «C:\NaNa» — это ссылка на «D:\Apple». Затем я получаю "C:\NaNa\Boo\Bin\.." вместо "C:\NaNa\Boo"
Я бы предположил, что функции работают только со строками, но, похоже, есть разница при использовании символической ссылки :-(
Обновление № 2: похоже, в переданной строке был символ разрыва строки (0x0d), и это мешало функции работать должным образом!