由于\\?\
前缀只能用于绝对路径,因此我需要找到一种将相对路径扩展到绝对路径的方法。对于少于260个字符的路径,这不是问题,因为有GetFullPathName()
Windows API可以完全满足我的要求。
但是,对于超过260个字符的相对路径,我也不能使用GetFullPathName()
,因为它也限于MAX_PATH
。 (当然,可以通过将\\?\
前缀与GetFullPathName()
一起使用来覆盖此限制,但是由于该前缀仅用于绝对路径,因此我不能使用它来使GetFullPathName()
转换为长的相对路径到长的绝对路径。)
因此,我想到的唯一一件事就是调用GetCurrentDirectory()
,然后手动将较长的相对路径合成为较长的绝对路径。当然,这也意味着我必须手动处理..
和.
之类的东西,看起来很麻烦。这就是为什么我想问一问,是否有一种简便的方法可以将较长的相对路径转换为较长的绝对路径,而无需手动进行任何操作。