如何使用Win32 API删除目录限定符以简化路径名?

Adi*_*sak 2 c++ winapi pathname

如果你有一个像"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),这使得函数无法正常工作!

Ale*_* K. 7

看看shlwapi的 PathCanonicalize()