Windows文件名长度限制

win7x64位环境:260个长度是作为总的文件名长度限制。例如:所在文件夹的长度为50则文件名的长度被限制在210之下,超出的话会被进行截断。如果在程序中的话,超出长度的话MoveFile/CopyFile会返回错误,处理失败。例子:1.我手动在C:\建立一个文件,使用280个长度进行重命名,实际生成的却是文件名是256个

大家好,又见面了,我是你们的朋友全栈君。

参考: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  转载请标明来源 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125219.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月5日 下午12:00
下一篇 2022年4月5日 下午12:00


相关推荐

  • 五分钟了解Mysql的行级锁——《深究Mysql锁》「建议收藏」

    五分钟了解Mysql的行级锁——《深究Mysql锁》「建议收藏」我们首先需要知道的一个大前提是:mysql的锁是由具体的存储引擎实现的。所以像MyISAM和InnoDB引擎的锁实现机制是有区别的。Mysql有三种级别的锁定:表级锁定、页级锁定、行级锁定表级锁定参考:三分钟了解Mysql的表级锁——《深究Mysql》页级锁定参考:[三分钟了解Mysql的页级锁——《深究Mysql》]一、定义每次锁定的是一行数据的锁机制就是行级别锁定(r…

    2022年4月30日
    39
  • ldap 统一认证 java_基于LDAP的统一身份认证系统的设计与实现

    ldap 统一认证 java_基于LDAP的统一身份认证系统的设计与实现摘要 随着全球信息化和 Internet 技术的迅速发展 信息化建设水平已成为衡量一个国家和地区综合实力的重要标志 在信息化建设进程中 信息的安全问题日益突出 作为信息网络安全的一个重要方面 身份认证和单点登录技术的应用日益广泛 迫切需要一种支持多种平台 统一多种认证方式 易于管理 安全的认证系统 本文根据当前正在建设的邯郸市居民卡项目的需求 设计并实现了一种新的统一身份认证系统 本文首先阐述了现有

    2026年3月17日
    2
  • sqlserver截断字符和二进制数据_SQL异常字符串截断

    sqlserver截断字符和二进制数据_SQL异常字符串截断错误信息提示:  Java代码  Error! [8152]System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。语句已终止。   原因:增加的数据类型与数据库中字段所定义的不符。 解决方法:1、修改数据库字段大小;2、加强数据强壮性,严格的输入判断。 防止添加的信息类型或者长度与数据库表中字段所对应的类型不符合。…

    2022年10月6日
    3
  • 文心AI电脑版

    文心AI电脑版

    2026年3月12日
    2
  • zookeeper启动报错 ,无法加载主类_security与safe

    zookeeper启动报错 ,无法加载主类_security与safe最近在本机电脑上zookeeper集群,但是报错如下,哪位大佬知道怎么解决2020-07-1314:43:15,283[myid:]-INFO[main:QuorumPeerConfig@173]-Readingconfigurationfrom:/home/yangaoyu/software/zookeeper-3.6.1/bin/…/conf/zoo.cfg2020-07-1314:43:15,316[myid:]-INFO[main:QuorumPeerConfi

    2022年8月30日
    5
  • Kimi K2再进化:从助手到Agent

    Kimi K2再进化:从助手到Agent

    2026年3月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号