参考:https://social.technet.microsoft.com/Forums/windows/en-US/53779044-d453-458b-b8c4-96d41711ea69/file-name-too-long-cannot-copy?forum=w7itprogeneral

参考:https://fresky.github.io/2015/10/13/story-about-windows-file-name/

参考:https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maximum-path-length-limitation

win7环境通常模式下:

path+filename: 260个长度是作为文件目录长度+文件名的长度限制之和(带结束符‘\0’)。

path: 248个长度是作为文件目录的长度限制(带结束符‘\0’);

filename: 256个长度通常作为文件名称的长度限制(带结束符‘\0’),不算结束符的话为255个字符;

1. 例如-建立文件:path+filename触发限额260

所在文件夹的长度为50,则文件名的长度被限制在210以内,超出的话会被进行截断。

2. 例如-建立文件夹:path触发限额248

在c:\下建立文件夹(目录前缀"c:\"占据3个长度),新建文件夹名称限制在245以内,超出的话会被进行截断。

3. 例如-建立文件:filename触发限额256

在c:\下建立文件(目录前缀"c:\"占据3个长度),新建文件夹名称限制在256以内,超出的话会被进行截断。

如果在程序中的话,超出长度的话MoveFile/CopyFile会返回错误,处理失败。

例子1:建立文件

1.  我手动在C:\建立一个文件,使用280个长度进行重命名,实际生成的文件名长度却是256个长度(带字符串结束符’\0’)

新建时使用280长度(带‘\0'结束符):1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklm.txt

实际生成文件名,共计256个长度(带字符串结束符’\0’):

256长度(带‘\0'结束符):1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz123

2. 把这个文件往”C:\temp”目录copy的时候

报错: 文件名对目标文件夹可能过长,您可以缩短文件名并重试,或者尝试路径较短的位置。

意味着,

a. 要么我们把文件名改短一些,

b. 要么copy 的目录长度短一些,例如向”D:\”复制就没会有问题。

例子2:建立文件夹

1. 我手动在C:\建立一个文件夹,使用280个长度进行重命名,实际生成的文件夹名称却是带字符串结束符’\0’共245个长度

新建时使用280长度(带‘\0'结束符):1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq

实际生成目录名称: 共计245个长度(带字符串结束符’\0’)

245长度(带‘\0'结束符):1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr

和父目录“c:\"连接在一起形成的目录长度正好为248长度(带‘\0'结束符)

c:\1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr

2. 在该目录下,再尝试建立目录时,失败-报错建立路径过长

意味着,

a. 总目录长度已经达到了最大限制,不能再往下建立目录

3. 另外,在该目录下新建文件,利用同样字符串,可以建立一个12长度的文件(带‘\0'结束符),超出会被截断

a. 建立的文件名(带'\0'长度12):1234567890a

b. 文件路径前缀(带‘\’长度248) + 文件名长度12 = 260 达到限额

Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu  转载请标明来源

Windows文件名长度限制相关推荐

  1. linux最大文件名,linux和windows文件名长度限制

    Linux文件名的长度限制是255个字符 windows下完全限定文件名必须少于260个字符,目录名必须小于248个字符. linux下文件数.目录数.文件名长度的各种限制 以下测试都是在没有优化或修 ...

  2. linux文件名长度限制6,linux和windows文件名长度限制问题

    文件名和目录名在操作系统中都有最大长度的限制,而且不同系统中的最大长度不同. 这些限制在Linux系统下可以通过修改系统内核修改这个限制. Linux文件名的长度限制是255个字符 windows下完 ...

  3. linux操作系统的文件名最大长度为,linux和windows文件名长度限制

    Linux文件名的长度限制是255个字符 windows下完全限定文件名必须少于260个字符,目录名必须小于248个字符. linux下文件数.目录数.文件名长度的各种限制 以下测试都是在没有优化或修 ...

  4. android文件路径长度限制,如何解决Win7文件名长度过长问题?

    电脑用久了总是会产生垃圾,这时候我们就得去清理,但是有时候清理到一些文件夹的时候却提示"该文件夹包含名称过长且无法放入回收站的项目",那么当你遇到文件名长度过长怎么办?不知道的朋友 ...

  5. linux中文文件名长度ftp无法传输,上传ftp时文件名不能太长

    ftp上传不了多个汉字文件名的文件. server-U11安装后,ftp上传文件时,必须使用英文字符或数据的文件名才能进入ServerU管理端界面,点击"服务器限制和设置"分类功能 ...

  6. linux下查看、删除指定文件名长度的文件

    1.列出文件名长度为12的文件 ls  |awk '{if(length($0)==12) {print $0}}' 2.删除文件名长度为12的文件 a=($(ls | awk '{if(length ...

  7. python变量名长度有限制吗_怎么去除 Python 下载文件时的文件名长度 50 限制

    我使用 urllib.request.urlretrieve(fileLink,fileNmae) 进行批量文件下载时报错 正在下载:agentx1_1.1.0-8bb70d4416f9574086b ...

  8. 查看windows文件名的编码

    dir > encode.txt 然后用 sublime txt3 软件打开文件 encode.txt 快捷键 Ctrl+` (此为1左边的'~'键) 然后输入view.encoding(),即 ...

  9. python路径长度限制,Linux下文件名长度限制

    Linux下文件名长度限制 出现场景:在迭代中有一个需求是将pdf文件名修改为所有班级的名称集合,出现的班级过多导致的文件名过长在linux下无法创建文件和文件夹的情况 解决方式:经过查证,linux ...

最新文章

  1. Python 开发面试题
  2. 2022年美国大学生数学建模竞赛——Problem A:自行车手的功率剖面
  3. 2021暑假实习-SSM超市积分管理系统-day08笔记
  4. MVC 用户权限HttpContext.User.IsInRole()
  5. Ocrad.js – JS 实现 OCR 光学字符识别
  6. 微信做了个新功能,网友并不买账:就为了给QQ充会员?
  7. redis在linux中安装目录,小刀博客园
  8. 网络安全--通过握手包破解WiFi(详细教程)
  9. 【历史上的今天】10 月 1 日:仙童半导体公司诞生;斯坦福大学正式办学;万维网之父成立万维网联盟
  10. 万变不离CHP 天霆“交付”多元化应用
  11. 【C++入门基础篇】---- 万字解析
  12. Rooting A Linux System 101
  13. Codeforces Round #797 (Div. 3) F. Shifting String题解
  14. Linux数据备份工具
  15. 家庭监控如何赢取用户信赖?
  16. Mysql 通过 binlog日志 恢复数据(数据搞丢看过来)
  17. 江苏机器人竞赛南航_第十届江苏省大学生机器人大赛
  18. 高新技术企业认定的价值
  19. 坚石诚信ET199外壳加密方式
  20. LVSDR模式+keepalived

热门文章

  1. 东坝电子计算机学校招生条件,人大附中朝阳分校东坝校区2020小升初招生开始了吗?...
  2. 关于 java.lang.NoClassDefFoundError: com/taobao/api/ApiException
  3. 一个开发者账号,多台MAC同时使用
  4. 南约地铁口炳坑村旧改,正在拆除中,京基地产开发。
  5. java 通过泛型创建对象
  6. 【软件测试】测试面试,面试官其实想要的答案......
  7. tmux工具简单介绍
  8. 在微信开放平台上创建移动应用
  9. 指数随机变量 泊松过程跳_随机过程学习笔记(1):指数分布与泊松过程
  10. 基于PHP的网上女装销售系统设计与实现