首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用‘\’前缀处理长相对路径?

如何使用‘\’前缀处理长相对路径?
EN

Stack Overflow用户
提问于 2019-05-28 15:21:41
回答 1查看 302关注 0票数 1

因此,我们都知道,默认情况下,Windows程序仅限于处理260个字符的最大路径长度。但是,可以通过用\\?\字符序列前缀路径来克服这一限制。

然而,由于某些原因,这在相对路径中是不可能的,MSDN说:

由于不能将\\?\前缀与相对路径一起使用,因此相对路径总是限制在MAX_PATH字符总数上。

(来源)

我真的不明白为什么微软决定禁止以\\?\为前缀的相对路径,所以如果这个决定背后有某种理由的话,我会很高兴听到这个决定,因为对我来说,\\?\只允许完全路径是没有道理的。

然而,我真正的问题是如何处理这个限制:我是应该简单地在相对路径上调用GetFullPathName(),将其扩展到完全路径,然后添加\\?\前缀,然后将该路径传递给fopen()等,还是建议如何处理这个限制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-29 08:21:28

不能使用带有相对路径的\\?\前缀。

当相对路径被传递到系统时,它被解析为绝对路径,然后传递给系统。正如在来源中提到的

前缀\\:\不作为路径本身的一部分。它们表示路径应在修改最少的情况下传递给系统,这意味着不能使用正斜杠表示路径分隔符,也不能使用句点表示当前目录,也不能使用双点表示父目录。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56345423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档