网络无垠 技术无界 知识无价 生命无悔
贴心代码 >> 精品美文

windows和linux文件名长度限制

tag: windows,linux


## windows和linux文件名长度限制

### 0x1. windows

* windows上的文件名长度和文件路径有关
- 具体关系为:从根目录计算,文件路径长度最长为259个bytes。
- 有一个特殊情况,D:\xx.txt,类似这样根目录下面一个文件,最后该文件路径长度最长为258个bytes,其他都是259个bytes
- 这也是为什么msdn定义#define MAX_PATH 260的原因,第260个字符为字符串结尾的\0
- Win7+php5下,php写文件,文件名超过256字符,会报错,写文件不成功。

* 具体操作可以在任意一个目录下,新建文件,再重命名文件,名字直到不能添加位置,最后计算下该文件路径长度。

* windows文件名特殊字符《\/*?"<>|:》

### 0x2. linux

- linux可以用getconf来判断文件名长度限制和文件路径长度限制
- 获取最长文件路径长度:getconf PATH_MAX /root 得到4096
- 获取最长文件名:getconf NAME_MAX /root 得到255

* 结论:

- linux下的文件名长度和路径长度无关,这和windows还是有区别
- linux下的文件名长度最长为255 bytes 即小于等于255 bytes
- linux下的最长文件路径长度为4096字节

* linux文件名特殊字符《\/*?"<>|:》最好不要用

发布: 2017-6-9 12:59:14@61.145.169.200 来源: 本站:peace