
在 Windows 系统中,「路径长度限制」一直是个让人头疼的老大难问题。出于历史兼容性考量,Win32 API 默认把「完整路径」限制在 260 个字符以内,这个长度由常量MAX_PATH
来定义。
为了解决这个问题,并提升兼容性。从 Windows 10 1607 开始,微软在 Win32 API 中引入了「长路径支持」功能。启用后,用户和应用程序就可以使用最长约 32767 个字符的路径,大大提升了复杂文件目录结构的兼容性。
接下来,我们就来看看在 Windows 11 中,如何为所有用户开启或关闭 Win32 长路径支持。
01. Windows 11 文件名和路径长度限制
1.1 微软官方文档怎么说
- 文件名长度限制:在 NTFS 或 exFAT 文件系统上,单个文件或文件夹名称(包括扩展名)的长度通常不超过 255 个字符。
- 完整路径长度限制:默认情况下,包括 Windows 11 在内,仍然遵循 MAX_PATH = 260 个字符的限制。所谓「完整路径」,就是指包括:盘符、冒号、反斜杠、所有目录与文件名,以及
<NUL>
终止空字符的总长度。例如:
D:\主文件夹\我是一个子文件夹\我是一个孙子文件夹\我是一个重孙子文件夹\demo.txt
让我们来快速对比一下:
项目 | 默认最大长度 | 是否可扩展 |
---|---|---|
单个文件(夹)名称 | ~255 个字符 | ❌ |
完整路径 | 260 个字符(默认) | ✅ ~32767 个字符 |
1.2 超出限制会怎么样
微软文档只是理论值,实际测试结果可能有些「玄幻 ☯️」,大致会出现以下几种情况:
- 如果单个文件或文件夹名称超过限制,Windows 11 会自动截断到最大长度。
- 在文件夹嵌套时,如果「完整路径」超过上限,系统会直接拒绝创建。
- 对于不同的文件类型,表现还不太相同。例如,在文件夹中新建超过(路径)长度限制的
.txt
文件时,名称可能会被截断,而不是直接报错。


02. 启用 Win32 长路径支持
启用长路径支持后,就能打破MAX_PATH
限制,让常用的 Win32 文件和目录操作函数处理超过 260 个字符的路径。以后再遇到「套娃」式文件夹,也不用再担心操作失败。
2.1 通过「设置」
仅适用于 Windows 11 25H2 及以高版本。
1按Windows + I
快捷键打开「设置」,进入「系统」>「高级」。
2在「文件资源管理器」区域中,打开「启用长路径」开关。

2.2 通过组策略
如果你使用的是 Windows 10 1607 及以上版本的专业版、教育版或企业版,可以更改组策略实现:
1按Windows + R
快捷键打开「运行」对话框,输入gpedit.msc
并回车,打开「本地组策略编辑器」。
2依次展开「计算机配置」>「管理模板」>「系统」>「文件系统」。
3将「启用 Win32 长路径」策略,设置为「已启用」。
4重启电脑让设置生效。

2.3 通过注册表
1按Windows + R
打开「运行」对话框,输入regedit
并回车,打开注册表编辑器。
2导航到以下位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
3找到名为LongPathsEnabled
的 DWORD (32 位) 值(没有就新建),并将其十六进制值设置为:
1
:开启 Win32 长路径支持(对所有用户生效)0
:关闭 Win32 长路径功能
4重启电脑让设置生效。

03. 注意事项
开启 Win32 长路径支持后,并不意味着所有软件都能自动适配。只有在应用程序的程序清单(Application Manifest)中声明了longPathAware
元素,明确表明支持长路径的应用,才能真正突破原有限制,充分利用这一特性。
最新评论
经过测试,是可行的。感谢分享。
1.你贴的方法我没测试,如果有效,也只适用于个人或小规模使用,不具备普遍性。 2.根据微软最佳实践,是建立一个本地帐户专门用来远程连接。 3.在域环境中,不存在使用 Microsoft 帐户的情况。
关于rdp无法连接win11微软账户的问题 有很简单的解决办法 不需要退出微软账户或者重置之类的 在中文互联网搜索到的教程内容一般是使用MicrosoftAccount\邮箱作为用户名 密码填微软账户密码然后链接 但是这有个问题就是如果服务端(被控端)本身无缓存时将无法链接 改用英文在google搜索后发现了这样一篇微软社区问答 https://answers.microsoft.com/en-us/windows/forum/all/remote-desktop-not-working-with-microsoft-account/71f0c323-688a-4c97-8740-e80eb31ae11d 打开cmd终端后输入runas /u:MicrosoftAccount\你的邮箱 winver并回车 在出现类似输入MicrosoftAccount\xxx@xxx.com:的密码的文本时输入你的微软账户密码并回车(密码不会显示) 如果密码正确 稍后你将会看到一个Windows关于信息框 关掉它既可 这条命令的意思是 以xxx@xxx.com的身份运行winver程序 在完成后它即可以在本地生成关于该账户信息的缓存 接下来即可在客户端(控制端)输入对应地址链接 用户名为MicrosoftAccount\你的邮箱 密码为微软账户密码 如果一切顺利 在建立连接后 即可弹出证书验证框(如果以前从未链接此计算机) 确定即可 稍等即可进入远程桌面 对于伸手不看理论党的直白概括: 被控端: 打开运行框输入cmd回车 在cmd输入runas /u:MicrosoftAccount\你的邮箱 winver并回车 在出现新的文本时输入微软账户密码并回车(密码不会显示的) 关闭新弹出的窗口及cmd 控制端: 打开rdp客户端 输入计算机的地址回车 用户名:MicrosoftAccount\你的邮箱 密码:微软账户密码 回车后保存证书即可链接 您好,这是我转自B站的评论,不知道这个方法是否具有普遍性来辅助我们用同一个账号进行远程控制
没有用哦,