Windows 7是否解决了255个字符的文件路径限制?

93

据我了解,255个字符的文件路径限制是Windows系统的限制。这个限制的原因是什么?如果是这样,Windows 7是否已经解决了这个问题?

在我们的持续集成实践中,我们经常有深度嵌套的项目结构,能够超过255个字符将非常有用。现在,我们被迫以某种方式构建我们的项目,以避免达到这个人为的限制。


3
@DavidHeffernan:但是260包括末尾的空字符和开头的C:\\,因此只有255个字符可用。 - Aaron Dufour
2
@DavidHeffernan 我错了。微软经常引用长度为256,这是正确减去后得到的结果,而不是技术上的极限260。 - Aaron Dufour
5
这个问题让我非常生气。它在Windows 8.1中仍然存在。尽管不知道为什么文件一开始能被创建,但我似乎无法移动我的文件。如果你找到某种方法来创建具有255个以上文件路径名称的文件,你完全可以破坏某人的Windows电脑。 - Automatico
根据Jeremy Kuhne的说法,该问题正在得到解决,并且可能很快就会有解决方案。请查看此视频。https://www.youtube.com/watch?v=ZppqEMegCAA - J Edward Ellis
问题是关于Windows 7的,但是无论如何,Windows 10确实有一个选项可以为某些应用程序打开长路径。更多详情请查看这个答案:https://dev59.com/DF4c5IYBdhLWcg3wqLxe - quasoft
5个回答

45

14
但需要注意的是:有一些代码(大多是第三方系统工具等)与较长的路径不兼容。如果您开始使用较长的路径,可能会遇到问题。 - Larry Osterman
2
这篇文章正确吗?我在Windows 7中使用Windows Explorer和Windows命令提示符进行了简单的测试,无法创建超过260个字符的文件路径。Microsoft没有更新这些应用程序以使用Windows API的Unicode版本吗? - Templar
7
很遗憾,在Windows 7 x64上,Windows资源管理器仍然受到路径长度限制的影响。这给人一种整个操作系统都无法克服这个限制的印象,但实际上只是Windows资源管理器没有更新以适应更长的路径。使用最新API的第三方文件管理器可能可以解决这个问题。最终,一个程序是否似乎受到路径限制的影响将取决于该程序是否在Windows上使用最新的API。 - user1445967
2
这不是关于“新”或“旧”API的问题。只有在显式请求时才会获得长路径支持,而资源管理器没有这样做,可能是为了与现有第三方应用程序兼容的明显原因。 - Harry Johnston
9
欢迎提供潜在解决方案的链接,但请为链接添加上下文,以便其他用户知道它是什么以及为什么存在。重要链接的最相关部分应始终引用,以防目标网站无法访问或永久离线。http://meta.stackoverflow.com/tags/link-only-answers/info - Russia Must Remove Putin

21

如果需要的话,您可以使用subst来避免这种限制。


5
更多信息请点击此处:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/subst.mspx?mfr=true(翻译说明:将原文中的链接提取出来并翻译为中文,同时保留原文英文部分) - Chris B
2
或者使用内置于Windows的Robocopy,根据这个答案,https://dev59.com/Qorda4cB1Zd3GeqPISKF?lq=1 - KAE
5
请展示如何操作,并提供相关文档链接。-1 - Russia Must Remove Putin
3
虽然我已经点赞了,但我认为提供一个例子会更有帮助:subst E: D:\TESTDATA\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1。这个命令让我成功访问了一个深度为500个字符的路径。 ~1的原因是因为资源管理器格式化路径时的方式。 - Adam Marcionek
1
一个类似的解决方案是使用联接,可以通过shell扩展mklink来实现。例如:mklink /J C:\newdir C:\some\really\long\path\ - Charles Grunwald

14

1
Windows的核心元素包括PowerShell、Windows资源管理器外壳和cmd实用程序(如del),仍然无法处理超过250个字符的路径,而且截至2016年,没有任何解决方法可以解决Microsoft核心技术无法处理长路径的问题。简短的答案是,在Microsoft采取行动之前,我们几乎无能为力。 - Warren P

4

这是一个很好的解决方案。使用过后,您遇到过任何问题吗? - Gabriel Fair

1

2
但不在Windows 7中? - gumuruh
这似乎不太合理,因为虽然它没有回答问题,但对于许多有类似问题的人来说,它可能是有用的。 - mwfearnley
然而,还有其他涉及Win10的问题。 - mjs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接