文件名最大长度问题-飞外

文件名和目录名在操作系统中都有最大长度的限制,而且不同系统中的最大长度不同。

这些限制在Linux系统下可以通过修改系统内核修改这个限制。

结论:

Linux文件名的长度限制是255个字符(Byte)。windows下完全限定文件名必须少于260个字符,目录名必须小于248个字符。

执行代码如下:

 1 #!/usr/bin/python 2 # encoding: utf-8 4 import os 6 ''' 7 代码仅适用于Python2版本,3版本需要改为range 9 '''12 def file_name_max_len():13 max_len = 014 try:15 for i in xrange(1, 10**10):16 name = "w" * i17 with open(name, 'w') as ofs:18 ofs.write("test" * 10)19 max_len = i20 os.remove(name)21 except IOError as ioe:22 print("Maximum length of file name is: {}".format(max_len))25 def dir_name_max_len():26 max_len = 027 try:28 name = "w"29 for i in xrange(1, 10**10):30 name = "w" * i31 os.mkdir(name)32 os.rmdir(name)33 max_len = i34 except OSError as ioe:35 print("Maximum length of directory name is: {}".format(max_len))38 if __name__ == '__main__':39 file_name_max_len()40 dir_name_max_len()

Linux下执行结果为:

$$ python name_len_test.py
Maximum length of file name is: 255
Maximum length of directory name is: 255

Windows环境未验证。