经过长时间的研究,我终于发现,即使在最新的微软Windows 7中,路径名也不能超过256个字符。我真的不明白为什么会有这样一个愚蠢的限制,因为NTFS可以处理超过3.2万个字符的路径长度,而不是十几年来的任何问题!没有任何改变的可能吗?或者有什么切实可行的解决办法来避免这种情况?
对于简单的用例来说,260个字符非常少,比如一些带有长文件名的嵌套照片目录。
发布于 2010-07-23 17:16:09
\\?\作为前缀,并且必须是绝对路径,例如\\?\c:\dir\file或\\?\UNC\server\share\file。还有进一步的限制,详见参考资料。如果您已经成功地创建和使用了一个深度文件层次结构,并且需要使用一个由于文件名长度而中断的应用程序,那么您可以尝试以下几种方法:
发布于 2010-07-23 14:20:35
您可以为所有文件夹和文件使用短(8.3)名。
但是,您需要确保它们是启用的。
长文件名被认为是任何超过短MS(也称为8.3)样式命名约定的文件名。通常,Windows将长文件名作为特殊目录项存储在磁盘上,由于性能原因,可以在系统范围内禁用这些条目,这取决于特定的文件系统。创建长文件名时,Windows还可以创建名称的短8.3形式,称为8.3别名,并将其存储在磁盘上。对于指定的卷,可以禁用此8.3混叠。
(我的大胆)
您还必须编写一些代码才能从长名称中获得短名称。
发布于 2010-08-31 17:31:55
NTFS中的文件/目录名仅限于255个unicode编码点,因为长度是以字节形式存储的。但是,总路径长度没有固有的限制。
许多Win32 API调用(包括资源管理器shell)都有260-1长度限制。其他一些调用可以使用\\前缀达到32K (稍微少一点,因为卷名在内核-land中被替换)
https://serverfault.com/questions/163419
复制相似问题