许多 Windows 应用程序(例如,几乎所有 .NET 应用程序)都无法打开长度超过 260 个字符的路径。我正在批量重命名播客文件列表。我想以剧集的标题命名每个文件,但标题最长为 100 个字符。这意味着如果用户将文件保存在路径很长的深层目录中,他们可能会达到限制并且无法在其他应用程序中打开文件。
我的程序可以接受这么长的文件名,并让用户在出现时处理很长的路径吗?iTunes 裁剪为 40 个字符,但这似乎非常保守。
感谢 Ben Voigt 澄清这仅适用于某些应用程序。
Windows 对文件路径没有 255 个字符的限制。
CreateFileA
限制为 260 个字符。 CreateFileW
最多支持大约 32760 个字符 (64kB) 的名称。
一些文件系统对最大目录嵌套级别或每个部分的最大长度施加了额外的限制。
您可能正在考虑某些流行的 Windows 程序,它们有 255 个字符的限制,但是容纳带有警告或用户可配置设置的程序可能比添加您自己的硬限制更合适。
好吧,我记得有一个不支持文件名中超过 32 个字符的 USB(不记得它有哪个 FS)。我也刚刚在谷歌上找到了这个链接:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa365247 (v=vs.85).aspx
字符数限制也可能不同,并且可能会因使用的文件系统和路径名前缀格式而异。由于支持向后兼容机制,这进一步复杂化了。例如,旧的 MS-DOS FAT 文件系统最多支持 8 个字符作为基本文件名,3 个字符作为扩展名,包括点分隔符在内总共 12 个字符。这通常称为 8.3 文件名。Windows FAT 和 NTFS 文件系统不限于 8.3 文件名,因为它们支持长文件名,但它们仍然支持 8.3 版本的长文件名。