轻松突破260字符限制! Win11启用长路径支持的教程
在 Windows NT 中资源管理器和诸多传统的 Windows API 都对路径长度有限制,这个限制是 javascript260 个字符 (包括盘符、冒号、反斜杠和文件名等等),如果文件的整个路径超过 260 个字符则在访问、复制、删除时都会提示路径太长或文件名太长的错误。
这种限制属于历史遗留问题,最初微软设置这个限制主要是用来兼容旧版文件系统例如 FAT 以及兼容早期的 Windows API,但在现代开发设计中文件夹层级非常深的情况也非常常见,例如 Node.js 项目中的 mode_modules 文件夹层级就非常多。
www.devze.com在 Windows 系统中,「路径长度限制」一直是个让人头疼的老大难问题。出于历史兼容性考量,Win32 API 默认把「完整路径」限制在 260 个字符以内,这个长度由常量MAX_PATH
来定义。
为了解决这个问题,并提升兼容性。从 Windows 10 1607 开始,微软在 Win32 API 中引入了「长路径支持」功能。启用后,用户和应用程序就可以使用最长约 32767 个字符的路径,大大提升了复杂文件目录结构的兼容性。
接下来,我们就来看看在 Windows 11 中,如何为所有用户开启或关闭 Win32 长路径支持。
Windows 11 文件名和路径长度限制
1、微软官方文档怎么说
- 文件名长度限制:在 NTFS 或 exFAT 文件系统上,单个文件或文件夹名称(包括扩展名)的长度通常不超过 255 个字符。
- 完整路径长度限制:默认情况下,包括 Windows 11 在内,仍然遵循&androidnbsp;MAX_PATH = 260 个字符的限制。所谓「完整路径」,就是指包括:盘符、冒号、反斜杠、所有目录与文件名,以及
<NUL>
终止空字符的总长度。例如:
D:\主文件夹\我是一个子文件夹\我是一个孙子文件夹\我是一个重孙子文件夹\demo.txt
让我们来快速对比一下:
项目 | 默认最大长度 | 是否可扩展 |
---|---|---|
单个文件(夹)名称 | ~255 个字符 | ❌ |
完整路径 | 260 个字符(默认) | ✅ ~32767 个字符 |
2、超出限制会怎么样
微软文档只是理论值,实际测试结果可能有些玄幻,大致会出现以下几种情况:
- 如果单个文件或文件夹名称超过限制,Windows 11 会自动截断到最大长度。
- 在文件夹嵌套时,如果「完整路径」超过上限,系统会直接拒绝创建。
- 对于不同的文件类型,表现还不太相同。例如,在文件夹中新建超过(路径)长度限制的
.txt
文件时,名称可能会被截断,而不是直接报错。
指定的文件名无效或太长
目标路径太长
启用 Win32 长路径支持
启用长路径支持后,就能打破MAX_PATH
限制,让常用的 Win32 文件和目录操作函数处理超过 260 个字符的路径。以后再遇到「套娃」式文件夹,也不用再担心操作失败。
1www.devze.com、通过「设置」
仅适用于 Windows 11 25H2 及以高版本。
1、按Windows + I
快捷键打开「设置」,进入「系统」>「高级」。
2、在「文件资源管理器」区域中,打开「启用长路径」开关。
打开「启用长路径 」开关
2、通过组策略
如果你使用的是 Windows 10 1607 及以上版本的专业版、教育版或企业版,可以更改组策略实现:
1、按Windows + R
快捷键打开「运行」对话框,输入gpedit.msc
并回车,打开「本地www.devze.com组策略编辑器」。
2、依次展开「计算机配置」>「管理模板」>「系统」>「文件系统」。
3、将「启用 Win32 长路径」策略,设置为「已启用」。
4、重启电脑让设置生效。
打开「启用 Win32 长路径」组策略
3、通过注册表
1、按Windows + R
打开「运行」对话框,输入regedit
并回车,打开注册表编辑器。
2、导航到以下位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
3、找到名为LongPathsEnabled
的 dwORD (32 位) 值(没有就新建),并将其十六进制值设置为:
1
:开启 Win32 长路径支持(对所有用户生效)0
:关闭 Win32 长路径功能
4、重启电脑让设置生效。
指定 LongPathsEnabled 注册表值
注意事项
开启 Win32 长路径支持后,并不意味着所有软件都能自动适配。只有在应用程序的程序清单(Application Manifest)中声明了longPathAware
元素,明确表明支持长路径的应用,才能真正突破原有限制,充分利用这一特性。
精彩评论