GetFullPathName 是否适用于长度超过 MAX_PATH 的相对路径



GetFullPathName()的文档说,为了使用长度超过MAX_PATH(260个字符)的路径,我需要在文件命名空间前缀前面加上前缀:\?。但是,有关文件名的一般文档指出,此前缀不能与相对路径一起使用,因此相对路径的长度始终限制为 260 个字符。这是否意味着没有办法将相对路径长度超过 MAX_PATHGetFullPathName() 一起使用?(如果是这样,那么我的理解是,除非传递的路径已经是完整的路径,否则该函数并不真正支持长路径。

同意,这是荒谬的。 原生 api 没有相对路径的概念,它是一个纯粹的 winapi 层功能。 它可以被解释为一种让函数返回本机路径名的方法。 但它没有,我检查过。 看起来像复制/粘贴文档错误。

一定要盯着球,当你需要GetFullPathName()时,你已经输了。 因为 GetCurrentDirectory() 已经受到MAX_PATH限制。 如此长的路径支持已经不在窗口之外。

通用建议是永远不要依赖相对路径,即使您不关心长路径支持。 事故太多了。 如果要编写预期从命令行驱动的简单控制台模式应用,则唯一合理的选择退出。 然后你不在乎,因为命令行解释器MAX_PATH阻碍。

最新更新