经过长时间的研究,我终于发现即使在最新的 Microsoft Windows 7 中,路径名也不能超过 256 个字符。我真的不明白为什么会有这么愚蠢的限制,因为 NTFS 最多可以处理 ~32,000 个字符的路径十多年以来的长度没有任何问题!没有任何改变的可能吗?或者是否有任何实用的解决方案来避免这种情况?
260 个字符对于简单的用例来说是非常少的,比如一些带有长文件名的嵌套照片目录。
Gil*_*il' 21
传统的 Windows API 将路径名限制为 260 个字符,即使对于为最新版本开发的应用程序也是如此。
使用 Unicode 感知 API 的应用程序可以使用最多允许 32767 个字符的路径形式。文件名必须以 为前缀\\?\,并且必须是绝对路径,例如,\\?\c:\dir\file或\\?\UNC\server\share\file。还有更多限制,请参阅参考资料了解详细信息。
如果您已经设法创建和使用深层文件层次结构,并且需要使用因文件名长度而爆炸的应用程序,则可以尝试以下几种方法:
使用该subst命令为目录分配驱动器号。
从深层目录启动您的应用程序并传递短的相对路径。
用它们的 8.3 别名 ( micros~1)替换一些长名称,假设它们仍然存在于 Windows 7 中。如果你有micros~1旁边的micros~2,我不知道如何分辨哪个是哪个;也许运行 DOS command.com(再次假设 Windows 7 仍然可以运行)。
您可以对所有文件夹和文件使用短名称 (8.3)。
不过,您需要确保它们已启用。
长文件名被认为是超出短 MS-DOS(也称为 8.3)样式命名约定的任何文件名。通常,Windows 将长文件名作为特殊目录条目存储在磁盘上,出于性能原因,可以在系统范围内禁用该目录条目,具体取决于特定的文件系统。当您创建长文件名时,Windows 还可能创建该名称的短 8.3 形式(称为 8.3 别名),并将其也存储在磁盘上。可以为指定卷禁用此 8.3 别名。
(我的大胆)
您还必须编写一些代码来从长名称中获取短名称。
| 归档时间: |
|
| 查看次数: |
27441 次 |
| 最近记录: |