windows和linux文件名长度限制

发布:2017-06-09 12:59   点击1011次   评论:0


## 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文件名特殊字符《\/*?"<>|:》最好不要用

关于 GitHub 导航 部门 反馈

提示:`/home.php`入口数据仅为演示功能,不构成任何交易凭证,也不承担相关风险和责任!

Copyright © 2011-2018 xxxxx.com All rights reserved.

Run:4.011/35.819(ms); 7(sql)/2.877(MB); comm:news/detail; Upd:2024-03-29 04:12:26