「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) が含まれているようで、これにより関数が正常に動作しなくなりました。