bug:file name too long文件名超出系统最大限制 | 您所在的位置:网站首页 › 解压时提示文件名过长 › bug:file name too long文件名超出系统最大限制 |
各操作系统支持最长的文件和目录名称长度(Linux、Win、Mac)
今天开发需求的时候发现无法新建文件,提示file name too lang,于是翻阅和查询了一些资料,发现不同操作系统下文件名和目录名最长的长度不同。 操作系统文件名最大长度(字节)路径最大长度Linux2554096MAC2551024Windows(未开启长文件名)255260Windows(开启长文件名)25532767注意:文件名包含扩展名 如果我们在linux或者mac上创建带有特殊字符的目录时,直接使用单引号引起来即可,如:‘啊1Aa~!@#$%^&()_+{}’文件名和目录名在操作系统中都有最大长度的限制,而且不同系统中的最大长度不同。 1 linuxLinux的 /usr/include/linux/limits.h 中做出了说明 上述文件内容的第11行和第12行分别说明了文件名和相对路径名的最大长度。需要说明的是,字符指的是ASCII字符,如果是汉字或者其他语言,则需要视编码而定。 这些限制在Linux系统下可以通过修改系统内核修改这个限制。 Linux文件名和目录的长度限制是255个字符(字节,linux中所说的字符是以ascii码来编码的) 例如:255个英文字母,包含中文则不足255个 2 windowsWindows 通常限定文件名最多包含 260 个字符(一个汉字占用两个字符哦)。但实际的文件名必须少于这一数值,因为完整路径(如 C:\Program Files\filename.txt)都包含在此字符数值中。 windows下完全限定文件名必须少于260个字符,目录名必须小于248个字符。 win7x64位环境:260个长度是作为总的文件名长度限制。 例如:所在文件夹的长度为50 则文件名的长度被限制在210之下,超出的话会被进行截断。 如果在程序中的话,超出长度的话MoveFile/CopyFile会返回错误,处理失败。 例子: 我手动在C:\建立一个文件,使用280个长度进行重命名,实际生成的却是文件名是256个长度(.txt也会算长度) 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklm.txt 实际生成文件名: xxxxx省略 共计256个长度,加上”C:\”三个长度,共计259个长度,再加一个字符串结束符’\0’,正好260位长度 注意:如果文件名过长,可以通过开启windows的长文件名开关 3 mac文件名最长255字节(包含扩展名),路径最长:1024 参考文章: https://blog.csdn.net/beyondlpf/article/details/7873045 https://blog.csdn.net/jimmyleeee/article/details/124682486 |
CopyRight 2018-2019 实验室设备网 版权所有 |