Windows和Unix上的文件名的255 char限制是整个路径还是路径的一部分?

时间:2013-01-24 12:00:56

标签: windows unix filesystems

Windows NTFS和Unix上的文件名的255 char限制是整个路径还是路径的一部分?

即给定c:\ part1 \ part2只有part1和part2必须小于255或是C:\ + part1 + part2

关于Unix的规则是什么?

3 个答案:

答案 0 :(得分:3)

在Windows上,第1部分和第2部分应为255或更小,整个c:\ part1 \ part2应为260或更少。有一种方法可以在WinNT内核(Windows 2000,XP和更高版本)上使用更长的文件名和路径,但这要求访问此类文件的应用程序明确支持此类文件名,因此在绝大多数情况下,您可以将255/260限制视为硬限制。

答案 1 :(得分:2)

除了上面的答案之外,您还必须考虑所使用的文件系统(ext2等)。对于Unix没有标准答案。 Linux通常为每个组件255个,完整路径为4096,或者路径不受限制。其他Unix变体使用不同的限制。带有HFS +的OSX是255文件名,1024或无限路径(我找不到确定的答案)。除非你是积极的,否则你只需要担心Linux,你可能希望保持整体路径低,只是为了确保。如果可能的话,将整个路径限制为255并不是一个坏主意。您可能还需要考虑文件系统可以在网络上安装,而NFS,SMB等也有自己的限制。

Unix的简短答案是没有简短的答案,也没有标准,操作系统和底层文件系统都有限制。

答案 2 :(得分:1)

在Linux系统上,part1和part2都应为255(即FILE_MAX)或更小,整个路径应为4096(即PATH_MAX)或更小。 PATH_MAX使用存在缺陷,如here所述。