首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >窗口256个字符路径名限制

窗口256个字符路径名限制
EN

Server Fault用户
提问于 2010-07-23 14:15:03
回答 3查看 28.6K关注 0票数 21

经过长时间的研究,我终于发现,即使在最新的微软Windows 7中,路径名也不能超过256个字符。我真的不明白为什么会有这样一个愚蠢的限制,因为NTFS可以处理超过3.2万个字符的路径长度,而不是十几年来的任何问题!没有任何改变的可能吗?或者有什么切实可行的解决办法来避免这种情况?

对于简单的用例来说,260个字符非常少,比如一些带有长文件名的嵌套照片目录。

EN

回答 3

Server Fault用户

发布于 2010-07-23 17:16:09

据微软称:

  • 传统的Windows将路径名限制为260个字符,即使是为最新版本开发的应用程序也是如此。
  • 使用Unicode感知API的应用程序可以使用允许最多32767个字符的路径形式。文件名必须以\\?\作为前缀,并且必须是绝对路径,例如\\?\c:\dir\file\\?\UNC\server\share\file。还有进一步的限制,详见参考资料。

如果您已经成功地创建和使用了一个深度文件层次结构,并且需要使用一个由于文件名长度而中断的应用程序,那么您可以尝试以下几种方法:

  • 使用mklink命令创建符号链接,并将使用它们的路径传递给应用程序。
  • 使用subst命令将驱动器字母分配给目录。
  • 从深目录启动应用程序,并传递给它较短的相对路径。
  • 假设它们在Windows7中仍然存在,用它们的8.3别名(micros~1)替换一些长名称。如果您在micros~2旁边有micros~1,我不知道如何判断哪个是;也许运行DOS command.com (同样,假设Windows 7仍然可以这样做)。
票数 22
EN

Server Fault用户

发布于 2010-07-23 14:20:35

您可以为所有文件夹和文件使用短(8.3)名。

但是,您需要确保它们是启用的。

长文件名被认为是任何超过短MS(也称为8.3)样式命名约定的文件名。通常,Windows将长文件名作为特殊目录项存储在磁盘上,由于性能原因,可以在系统范围内禁用这些条目,这取决于特定的文件系统。创建长文件名时,Windows还可以创建名称的短8.3形式,称为8.3别名,并将其存储在磁盘上。对于指定的卷,可以禁用此8.3混叠。

(我的大胆)

您还必须编写一些代码才能从长名称中获得短名称。

来源

票数 1
EN

Server Fault用户

发布于 2010-08-31 17:31:55

NTFS中的文件/目录名仅限于255个unicode编码点,因为长度是以字节形式存储的。但是,总路径长度没有固有的限制。

许多Win32 API调用(包括资源管理器shell)都有260-1长度限制。其他一些调用可以使用\\前缀达到32K (稍微少一点,因为卷名在内核-land中被替换)

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

https://serverfault.com/questions/163419

复制
相关文章

相似问题

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