bug:file name too long文件名超出系统最大限制

各操作系统支持最长的文件和目录名称长度(Linux、Win、Mac)

今天开发需求的时候发现无法新建文件,提示file name too lang,于是翻阅和查询了一些资料,发现不同操作系统下文件名和目录名最长的长度不同。

操作系统文件名最大长度(字节)路径最大长度
Linux2554096
MAC2551024
Windows(未开启长文件名)255260
Windows(开启长文件名)25532767

注意:文件名包含扩展名

  • 如果我们在linux或者mac上创建带有特殊字符的目录时,直接使用单引号引起来即可,如:‘啊1Aa~!@#$%^&()_+{}’

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

1 linux

Linux的 /usr/include/linux/limits.h 中做出了说明

在这里插入图片描述

上述文件内容的第11行和第12行分别说明了文件名和相对路径名的最大长度。需要说明的是,字符指的是ASCII字符,如果是汉字或者其他语言,则需要视编码而定。

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

Linux文件名和目录的长度限制是255个字符(字节,linux中所说的字符是以ascii码来编码的)

例如:255个英文字母,包含中文则不足255个

2 windows

Windows 通常限定文件名最多包含 260 个字符(一个汉字占用两个字符哦)。但实际的文件名必须少于这一数值,因为完整路径(如 C:\Program Files\filename.txt)都包含在此字符数值中。

windows下完全限定文件名必须少于260个字符,目录名必须小于248个字符。

  • win7x64位环境:

260个长度是作为总的文件名长度限制。

例如:所在文件夹的长度为50

则文件名的长度被限制在210之下,超出的话会被进行截断。

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

例子:

我手动在C:\建立一个文件,使用280个长度进行重命名,实际生成的却是文件名是256个长度(.txt也会算长度)

1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklm.txt

实际生成文件名:

xxxxx省略

共计256个长度,加上”C:\”三个长度,共计259个长度,再加一个字符串结束符’\0’,正好260位长度

注意:如果文件名过长,可以通过开启windows的长文件名开关

3 mac

文件名最长255字节(包含扩展名),路径最长:1024

参考文章:
https://blog.csdn.net/beyondlpf/article/details/7873045
https://blog.csdn.net/jimmyleeee/article/details/124682486

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序主包超1.5MB分包处理流程优化方案

"subPackages": [// 分包1 {"root": "src, // 根目录"pages": [{"path": "views/business/index", // 页面路径"name": "business_index","aliasPath": "/business/index",&…

make/makefile的使用

make/makefile 文章目录 make/makefile初步认识makefile的工作流程依赖关系和依赖方法make的使用 总结 make是一个命令,是一个解释makefile中指令的命令工具,makefile是一个文件,当前目录下的文件,两者搭配使用,完成项…

Python采集课堂视频教程, m3u8视频解密

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 解释器 Pycharm 编辑器 模块使用: requests >>> pip install requests pycryptodome --> pip install pycryptodome re 第三方模块安装方法: win R 输…

7.14~7.15学习总结

Java的前置知识学习时间截至了,慌的一批~~。 看看自己学的,再看看要求学的,简直: 现在继续:IO流里面的Commons_IO的用法: public class Main {public static void main(String[]args) throws IOException…

【C++】多线程编程三(std::mutexstd::mutex、std::lock_guard、std::unique_lock详解)

目录 一、线程间共享数据 1.数据共享和条件竞争 2.避免恶性条件竞争 二、用互斥量来保护共享数据 1. 互斥量机制 2.mutex头文件介绍 三、C中使用互斥量mutex 1. 互斥量mutex使用 2.mutex类成员函数 ① 构造函数 ② lock() ③ unlock() ④ try_lock() 四、使用std::…

如何与ChatGPT愉快地聊天

原文链接:https://mp.weixin.qq.com/s/ui-O4CnT_W51_zqW4krtcQ 人工智能的发展已经走到了一个新的阶段,在这个阶段,人工智能可以像人一样与我们进行深度的文本交互。其中,OpenAI的ChatGPT是一个具有代表性的模型。然而&#xff0…

mac安装Golang开发环境及快速入门

目录 一、Mac brew 安装go环境 1.1 安装步骤 1.2 设置GOPATH 及环境变量 1.3 编写第一个go程序 二、快速入门 2.1 快速入门需求 2.2 go学习(自用) 2.2.1 go基础程序 2.2.2 变量声明 2.2.3 常量和枚举 2.2.4 函数与多种返回值 2.2.5 init函数…

18.Lucas-Kanade光流及OpenCV中的calcOpticalFlowPyrLK

文章目录 光流法介绍OpenCV中calcOpticalFlowPyrLK函数补充reference 欢迎访问个人网络日志🌹🌹知行空间🌹🌹 光流法介绍 光流描述了像素在图像中的运动,就像彗星☄划过天空中流动图像。同一个像素,随着时…

手写对象浅比较(React中pureComponent和Component区别)

PureComponent和Component的区别 PureComponent会给类组件默认加一个shouldComponentUpdate这样的周期函数 //PureComponent类似自动加了这段shouldComponentUpdate(nextProps,nextState){let { props, state } this;// props/state:修改之前的属性状态// nextProps/nextState…

047、TiDB特性_TopSQL

TopSQL 之前 之前没有办法找单个TiKV Server的语句。只能查找整个集群的慢语句。 TopSQL之后 指定TiDB及TiKV实例正在执行的SQL语句CPU开销最多的Top 5 SQL每秒请求数、平均延迟等信息 TopSQL 使用 选择需要观察负载的具体TiDB Server或TiKV实例 观察Top 5 类SQL 查看某…

用IDEA写第一个Spring程序 HelloWorld

用IDEA写第一个Spring程序 HelloWorld 环境 Orcal JDK:1.8.0_341 maven:3.9.3 Spring:5.3.10 IDEA:2023.1.2 1. 安装JDK和IDEA 2. 安装maven并配置环境变量、换源 3. IDEA中maven属性配置,主要是版本和settings文件及…

python+selenium进行cnblog的自动化登录测试

Web登录测试是很常见的测试,手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文就基于pythonselenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化登录测试,可提供点参考!下面就包括测试代…

centos7 docker 安装sql server 2019

contos7安装sql server docker最低1.8或更高 卸载旧的docker sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 装docker依赖包 #安装所需资源包 sudo yum install -…

uniapp实现微信小程序自带的分享功能

定义 share.js 文件 export default {data() {return {// 默认的全局分享内容share: {title: 标题,path: /pages/index/index, // 全局分享的路径imageUrl: , // 全局分享的图片(可本地可网络)}}},// 定义全局分享// 1.发送给朋友onShareAppMessage(res) {return {title: this…

数据结构与算法——希尔排序(引例、希尔增量序列、原始希尔排序、代码、时间复杂度、Hibbard增量序列、Sedgewick增量序列)

目录 引例 希尔增量序列 原始希尔排序 代码(C语言) 时间复杂度 更多增量序列 Hibbard增量序列 Sedgewick增量序列 希尔排序(by Donald Shell) 引例 给以下序列进行排序: 先以5的间隔进行插入排序&#xff1a…

设计模式之桥接模式

写在前面 本文看下桥接设计模式。 1:介绍 1.1:什么时候桥接设计模式 当一个业务场景由多个变化维度组成,并且这多个变化的维度到底有多少种情况是不确定,比如现在我们要为瑞幸咖啡写一个系统,很自然的,…

2023.7.16 第五十九次周报

目录 前言 文献阅读:跨多个时空尺度进行预测的时空 LSTM 模型 背景 本文思路 本文解决的问题 方法论 SPATIAL 自动机器学习模型 数据处理 模型性能 代码 用Python编写的LSTM多变量预测模型 总结 前言 This week, I studied an article that uses LSTM to solve p…

Element分页组件自定义样式

样式效果 页面代码 <el-paginationsize-change"handleSizeChange"current-change"handleCurrentChange":current-page"page.page":page-sizes"[10, 20, 30, 40]":page-size"page.size"layout"total, sizes, prev, …

如何用https协议支持小程序

步骤一&#xff1a;下载SSL证书 登录数字证书管理服务控制台。在左侧导航栏&#xff0c;单击SSL 证书。在SSL证书页面&#xff0c;定位到目标证书&#xff0c;在操作列&#xff0c;单击下载。 在服务器类型为Nginx的操作列&#xff0c;单击下载。 解压缩已下载的SSL证书压缩…

使用 jmeter 进行审批类接口并发测试

目录 前言&#xff1a; 背景&#xff1a; 难点&#xff1a; 场景 a&#xff1a; 场景 b&#xff1a; 前言&#xff1a; 使用JMeter进行审批类接口的并发测试是一种有效的方法&#xff0c;可以模拟多个用户同时对接口进行审批操作&#xff0c;以评估系统在高负载情况下的性…