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

How do you remove directory qualifiers to simplify pathname using the Win32 API?

本文关键字:路径名 何使用 Win32 API 删除目录      更新时间:2023-10-16

如果你有一个像"C:foo.bar.."这样的路径,是否有一个简单的方法使用Win32 API来删除目录限定符,以简化为"C:foo" ?


更新:似乎是一个更复杂的问题。在这个简单的"C:foo.bar.."的例子中,它与PathCanonicalize()和GetFullPathName()一起工作以获得"C:foo"作为结果。

然而,我传递的路径有一个符号链接。假设我传入"C:NaNaBooBin..",而"C:NaNa"是指向"D:Apple"的链接。然后我得到"C:NaNaBooBin.."而不是"C:NaNaBoo"

我假设函数只与字符串一起工作,但使用符号链接时似乎有区别:-(

)

更新#2:似乎我在传入的字符串中有一个换行字符(0x0d),这使函数无法正常工作!

看一下shlwapi的PathCanonicalize()