惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
WordPress大学
WordPress大学
T
Tor Project blog
Jina AI
Jina AI
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
雷峰网
雷峰网
博客园 - 聂微东
B
Blog RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
S
SegmentFault 最新的问题
Recent Announcements
Recent Announcements
有赞技术团队
有赞技术团队
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
U
Unit 42
博客园 - Franky
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
F
Fortinet All Blogs
罗磊的独立博客
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
C
Check Point Blog
Martin Fowler
Martin Fowler
The Cloudflare Blog
N
Netflix TechBlog - Medium
小众软件
小众软件
T
Tailwind CSS Blog
T
The Blog of Author Tim Ferriss
月光博客
月光博客
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
H
Help Net Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
The Exploit Database - CXSecurity.com
S
Securelist
I
Intezer
Spread Privacy
Spread Privacy

Windows

用 AI 搓了个通过 DLNA 协议投屏的小工具 - V2EX 大家有用过 Power Automate 吗? - V2EX 一台[物理断网]+[加密解密专用]的 WIN 电脑,如何在开机后“主动补熵”呢? - V2EX 做了个原生的护眼应用 - V2EX 把 Windows Terminal 优化配置过程更新了一下 - V2EX Windows 10 任务管理器闪退问题 - V2EX 有没有人 vibe coding 一个支持 udp 的运行在 macos 上的 windows App? - V2EX 最近准备更新系统到 windows 11,大家给 win 11 分配的 C 盘空间是多少 - V2EX IDM 下载器是不是出问题了 一直让 Windows 资源管理器崩溃 - V2EX 终于解决困扰我 2 年多的 win10 内存泄漏问题了 - V2EX WSL Containers 有老哥用上了吗? - V2EX Win RDP 远程桌面音频时不时抽风(无声音) - V2EX 大佬们我重装了个 win11 以后,右键任务栏的程序不会出现功能了 - V2EX 求助!个人平时用 windows 都是打游戏,如何给 windows 做程序员风格优化?周末想给老婆的电脑处理一下 - V2EX windows11 专业版,微软商店下载的 chatgpt 桌面版,打开速度很慢。点击之后大概 1 分钟才真正打开,才弹出窗口。这是什么问题,如何解决? - V2EX Windows11 里面的防火墙规则,如何有效清理? - V2EX win11 笔记本开启虚拟化安全和内存完整性两项功能么? - V2EX 用惯了 MacOS 启动台 Launchpad,于是我创建了 Windows 版的 Launchpad - V2EX AI 可以精简 windows 镜像(国产的不行) - V2EX 2026 年了,还有人使用精简 windows 镜像吗? - V2EX 游戏美术专业学生,拯救者 Y9000P 和 ASUS ProArt 16,应该选哪一款? Microsoft.Coreutils 看起来很普通啊,为毛大家都在吹 CPU 不在 win11 支持列表中,如果安装 11,有啥后果? winget install Microsoft.Coreutils windows 终将成为最好的 Linux Windows 自带中文输入法间歇卡死问题 - V2EX 适用于 Windows 平台的高性能的 Wireguard 开源客户端 卡巴斯基安全软件和卡巴斯基标准版选择哪个? 内核(驱动)内存泄露 禁止 edge 自动下载 ai 翻译模型 VibeCoding 了个 无需后台服务的 Windows 极简防火墙 netblock windows11 通行密钥出现问题 用 mac 连接 Windows RDP,没有 udp, windows 却有 关闭 Microsoft Defender 防病毒 从此不再卡顿 使用 mac 连接家里的 Windows,大家有那些使用姿势 Win11 的 bitlocker 被破解了... mac 的远程 windows 可以用三指拖移,为啥 win 自己没有三指拖移手势? 有试过 Windows 的新特性, Xbox mode 吗? 双屏幕,锁屏休眠再唤醒后,布局混乱是我的问题还是 bug? 请问大家的操作系统如果安装在 C 盘的话,都给 C 盘分配多少磁盘空间呢? 用 WoA, Python 和 nodejs 还是得老老实实装 x64 版(即使有原生 ARM64) 求 Windows UWP 软件大佬实现一个 terminal 功能 - V2EX 各位大佬们,你们 win 系统安装了什么杀毒软件? - V2EX Windows Update 开始推送无限暂停体验 - V2EX Win 11/10 重装系统、保留数据、初始化 - V2EX windows 更新这么离谱吗 - V2EX 想用 Windows 系统作为游戏服务器,系统选什么 - V2EX Windows 上面有类似 TimeMachine 的备份软件吗 - V2EX 微软无预警封禁 VeraCrypt 和 WireGuard 的开发者账号 - V2EX Win11 23H2 无线网卡(AX211)有 DNS 残留,经常需要手工干预的问题... - V2EX Windows 桌面版 EULA 里面有一条很有意思 - V2EX 发现 WinServer(2025)才是最轻量的 Win,胜过 LTSC,很适合虚拟机 - V2EX 资源占用最低的 windows 杀毒软件是? - V2EX win11 经常系统信息的储存 显示 0GB - V2EX bitwarden 的数据在 Windows 内存中是明文吗? - V2EX windows 11 现在问题还多吗 - V2EX 稀疏文件(sparse file)如何在不同分区移动后保持稀疏性呢 - V2EX 告别“强制重启”:微软承诺用户可无限期暂停安装 Win11 补丁 - V2EX 增强的语音识别下载失败求助 - V2EX Windows 11 25H2/24H2/Arm/Windows 10 专业版/企业版/专业工作站版微软批量许可正版 ISO 企业直供下载镜像地址 - V2EX 有 v 友成功尝试过通过 ipxe 把 windows11 安装在 iscsi 磁盘上吗? - V2EX Windows 11 将恢复可移动任务栏功能 - V2EX rmx:给 Windows 换一个能用的删除 - V2EX 你们的 windows 鼠标指针 "工" 是否也经常变白色? - V2EX 同样的配置 Win11 Pro 比 Win10 LTSC 更流畅? - V2EX win 的 QQ 怎么实现和 mac 一样的,点击快捷方式直接进入已登录的账号(不是显示登录账号的界面) - V2EX System 一个月上传流量 800GB 感觉不正常 - V2EX Windows 10 22H2 转 Windows 10 IoT 企业版 LTSC 2021 - V2EX win 系统下 现在能双开微信的方法 求助 - V2EX 任务管理器的使用技巧 - V2EX 疑难杂症,Ctrl+; 无法使用 - V2EX windows 下有什么好的输入法管理自动切换软件吗 - V2EX wsl 会获取不到 ip 现在 C 盘启用 bitlocker 不用输入密码了? windows11 有什么办法让 Python 只用 p 核 - V2EX easytier 组网,无法将 wsl2(镜像模式)的端口打通 Windows NT 6.0、6.1 今日正式彻底停更 - V2EX 开启 windows 自动更新后, 会随着多次 windows 系统的自动更新 系统越来越慢吗?win11 这把实锤了, win11 是微软 25 年来最慢的系统 - V2EX 卸载了 KB5072033 电脑快了不少 - V2EX 修复 Windows 软件开机启动有延迟 windows10 的搜索功能有这么明显的 Bug 的吗 Windows 下除了 ConEmu 还有什么轻量型的 Bash 终端吗 - V2EX windows 远程登录方案分享 自己定制镜像有什么最佳实践吗 Windows 远程桌面带来的 BUG,浏览器卡死 - V2EX windows 远程登录方案讨论 win10 开始菜单索引改变 微软 AI 这么厉害,应该用 AI 重构 windows - V2EX windows11 系统关联的格式总是失效是什么原因呢 - V2EX 求各位佬帮我决定一下 11 还是 10 - V2EX 发现 windows 11 很多程序上的 GPU 开启后更卡了。 求推荐 win11 上简单好用的免费个人防火墙软件,规则不可篡改,只可以手动允许
Windows 文件路径长度限制是多少个字符? 244、255、256、260?「启用长路径」有用吗? - V2EX
fengwq · 2026-03-27 · via Windows

到底是多少个字符?

256

微软文档《 最大路径长度限制 》( Maximum Path Length Limitation ):
在 Windows API 中,路径的最大长度为 MAX_PATH ,为 260 个字符
系统按以下顺序构建本地路径:驱动器号、冒号、反斜杠、用反斜杠分隔的路径和终止 null 字符。
例如,驱动器 D 上的最大路径为:
D:\某个 256 个字符的路径字符串<NUL>
其中 <NUL> 表示当前系统代码页的不可见终止 null 字符。(<> 字符在此用于醒目用途,不能作为有效路径字符串的一部分。)

文档到这里的意思是:路径总长度是 260 个字符,掐头去尾中间可用的部分是 256 个字符(英文版也是 256 )。

那么来测试一下。
测试用例

240-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

251-0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

252-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

字符串计数工具

244

D:\ 路径,使用「文件资源管理器( Explorer.exe )」创建文件或文件夹,只能创建 244 个字符的文件、文件夹

目标路径太长.png
这张图是在一个 D:\244 字符 的文件夹里,继续新建文件夹的报错「目标路径太长」。

然后我发现群晖文档《 如果 Windows 文件资源管理器提示文件名过长,我该怎么办? 》讲得很清楚:
最大可用路径长度为 244 个字符,因为 Windows 文件资源管理器为 8.3 文件名格式预留了 12 个字符。」

其实微软文档《最大路径长度限制》也提到了:「使用 API 创建目录时,指定的路径不能太长以致于无法附加 8.3 文件名(即目录名不能超过 MAX_PATH 减 12 )」。只是不太显眼,容易被忽略。

「 8.3 文件名」是什么?

在 MS-DOS FAT 文件系统,基础文件名最多 8 个字符,扩展名最多 3 个字符,总共支持 12 个字符(包括点分隔符),所以被称为 8.3 文件名。Windows FAT 和 NTFS 文件系统不限于 8.3 文件名,因为它们有长文件名支持功能,但也支持 8.3 版本的长文件名。

在 Win10 、Win11 系统,系统盘默认启用 8.3 文件名,非系统盘默认禁用 8.3 文件名
可以用 fsutil 查询(需要管理员权限):

fsutil 8dot3name query D:
卷状态为: 1 (8dot3 名称创建已禁用)
注册表状态为: 2 (按卷设置 - 默认值)

基于上述设置,8dot3 名称创建已在“D:”上禁用

在启用了 8.3 文件名的盘中,创建文件名超过 12 个字符的文件,系统会自动生成相应的 8.3 文件名,即「短文件名」

微软文档《 命名文件、路径和命名空间
微软文档《 8.3 Filename
关于 Windows 文件名和路径名的那些事
联想文档《 什么是 8.3 格式?

所以,文件资源管理器为了兼容性,进一步限制,就只能创建 256 - 12 = 244 个字符的文件、文件夹。

255

在「群晖文档」中提到:「此限制仅适用于 Windows 文件资源管理器和 Windows API 。使用 Windows PowerShell 或 命令提示符 中的 ren 或 rename 命令重命名文件不受影响。」

测试后确实,使用 ren 可以创建超过 244 个字符的文件、文件夹。
但是,文件不能超过 255 个字符,文件夹不能超过 254 个字符:( -LiteralPath 是必须的):

ren -LiteralPath "1" "252-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000345"
ren : 指定的路径或文件名太长,或者两者都太长。完全限定文件名必须少于 260 个字符,并且目录名必须少于 248 个字符。
所在位置 行:1 字符: 1
+ ren -LiteralPath "1" "252-0000000000000000000000000000000000000000000 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (D:\1:String) [Rename-Item], PathTooLongException
    + FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand

报错是:「完全限定文件名必须少于 260 个字符,并且目录名必须少于 248 个字符」。
微软文档《 Git 跨平台兼容性 》:「对于具有 .NET 的目录,完全限定的文件名必须少于 260 个字符,目录名称必须少于 248 个字符」。

为什么文件最多 255 个字符?既不是 256 也不是 244 ,代码实现与文档《最大路径长度限制》是对不上的。
在另一篇微软文档《 Filename 》倒是提到了 255 个字符:A filename MUST be at least one character but no more than 255 characters in length.

为什么文件夹最多 254 个字符?这个数字更是哪都对不上。还有,使用 mkdir 只能创建 244 个字符的文件夹。

「启用长路径」有用吗?

「启用长路径」也就是注册表值 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD) 设置为 1 。

微软文档《最大路径长度限制》:启用之后,「允许最大总路径长度为 32767 个字符的扩展长度路径」,要指定扩展长度路径,要使用 \\?\ 前缀。例如,\\?\D:\非常长的路径

它只对部分 Windows 函数生效

单个文件、文件夹的名字上限还是 255

前面测试的文件资源管理器,PowerShell 的 New-Item 、Rename-Item 等命令仍然不完全支持长路径
New-Item 、Rename-Item 具体调用的是什么函数?这个问题超出我能力范围了。

启用长路径之后,mkdirNew-Item -ItemType Directory -Path)可以创建 255 个字符的文件夹,限制只增加了 11 个字符,在这个文件夹下也能继续创建文件。

mkdir "252-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000345"

    目录: D:\
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2026-3-19     21:49                252-00000000000000000000000000000000000000000000000000000000000000000
                                                  000000000000000000000000000000000000000000000000000000000000000000000
                                                  000000000000000000000000000000000000000000000000000000000000000000000
                                                  000000000000000000000000000000000000000000000345

长路径语法 \\?\

如果按文档,加上 \\?\ 反而会报错:

mkdir "\\?\D:\252-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000345"
mkdir : 路径不能为空字符串或全为空白。
参数名: path2
所在位置 行:1 字符: 1
+ mkdir "\\?\D:\252-000000000000000000000000000000000000000000000000000 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (\\?\D:\252-0000...000000000000345:String) [New-Item],ArgumentException
    + FullyQualifiedErrorId : CreateDirectoryArgumentError,Microsoft.PowerShell.Commands.NewItemCommand

New-Item 创建文件时,支持 \\?\ 语法:New-Item "\\?\D:\123" 。但创建文件夹时,又不支持了。
Rename-Item 支持 \\?\ 语法:Rename-Item -LiteralPath "\\?\D:\1" "\\?\D:\123" 能正常运行。
Remove-Item 支持 \\?\ 语法,而且对超过 255 个字符的命令没有报错。还好它是支持的,否则创建之后不能删除就麻烦了。

PowerShell 5.1 启用长路径前 启用后
文件资源管理器 244 244
mkdir 244 255
ni (文件) 255 255
ren 文件夹 254 ,文件 255 255
del 超过 4000

255 还不到 32767 零头的一半。

PowerShell 7

Win10 、Win11 默认的 PowerShell 是 5.1 版本的
$PSVersionTable 查看版本。

我下载了 PowerShell 7.6.0 版本进行测试。

PowerShell 7.6.0 启用长路径前 启用后
mkdir 255 255
ni (文件) 255 255
ren 文件、文件夹都是 255 255
del 超过 4000

统一是 255 字符了,比 5.1 版本好一些,但还是不支持长路径,使用 \\?\ 语法也不行。

多层文件夹的路径上限

虽然单个文件、文件夹的名字上限是 255 个字符,但多层目录的限制又不一样了。在未启用长路径的情况下,就可以创建超过 4000 个字符的路径。还能在这个路径下新建 txt ,并且用「记事本」读写:

4200 多个字符路径.png

而且,到了这个长度,「文件资源管理器」报错是「目录名称无效」:

explorer.exe-目录名称无效.png

「启用长路径」之后这个报错也还在。

就到此为止吧,暂时不继续研究了。

第三方软件的支持情况

PikPak

终于到了我研究这个问题的初心了!
我发现 PikPak 的 Windows 客户端下载文件( v2.8.16.5418 ),文件名超过 100 个字符的部分会被截断。网页端没有这个问题。
于是我去找客服提了 bug ,只过了 11 天,官方就在 2.9.0 版本修复了。我要给 PikPak 的客服和研发点赞,认真处理用户反馈。

修复后的逻辑是这样的:
总路径长度支持 500 个字符:包括 246 个字符的文件名,246 个字符的上层路径(可以有多层文件夹):
\\?\D:\246 个字符的路径\246 个字符的文件名
如果超过限制,会弹出「下载失败」的通知。

总结

截至 2026-03 月,使用 Windows 系统,路径长度(文件名)最好控制在 244 个字符以内
单个文件、文件夹的名字上限是 255 个字符。
多层文件夹的路径上限超过 4000 个字符。
「启用长路径」的作用鸡肋。

提醒:4 个字符的扩展名是很常见的
.avif .docx .flac .html .jpeg .json .m3u8 .pptx .webp .xlsx

参考资料

Windows10 下路径名称限制

群晖文档《 Cloud Station Backup 帮助 》:
Cloud Station Backup 默认在以下情况下不会备份文件和文件夹:
对于 Windows:

  • 文件夹或文件路径长度超过 247 个字符。
  • 文件名称长度超过 255 个字符。

看了但没用上

30 年前的技术债引发 win11 离奇 bug ,微软不敢修!
请教一下,windows 系统变量字符过长有什么好的解决方案!

更新日志

2026-03-21 第一版
2026-03-19 开始写


欢迎关注我的频道: https://t.me/fengwq