win11局域网复制超长路径文件报“源路径文件名太长”,因突破260字符max_path限制;需启用长路径支持(组策略或注册表+重启),或用robocopy、subst映射绕过。

你在Win11局域网中复制一个来自CI构建产物或node_modules深层嵌套的文件夹时,资源管理器突然弹出“源路径文件名太长”错误,说明该文件完整路径(含UNC共享路径前缀)已突破Windows默认260字符MAX_PATH硬限制,系统在SMB协议层就拦截了操作,连跳过选项都不会出现。
专业版/企业版:用组策略启用全局长路径
第一步:按 Win + R 输入 gpedit.msc 回车,打开本地组策略编辑器——家庭版用户请直接跳转下一节。
第二步:左侧依次展开:计算机配置 → 管理模板 → 系统 → 文件系统。
第三步:右侧双击【启用 Win32 长路径】→ 勾选“已启用”→ 点击“确定”。这一步开启的是内核级开关,影响所有调用Win32 API的进程,包括SMB客户端、资源管理器、PowerShell及第三方备份工具。
第四步:关闭组策略编辑器。【必须重启电脑】,否则局域网复制时仍会沿用旧的260字符路径解析逻辑,UNC路径如\SERVERsharedeep
ested...照样报错。
家庭版及所有版本通用:PowerShell一键写入注册表
这个方法不依赖图形界面,命令自动校验路径与键名,拼错、大小写错、路径不存在等问题均由PowerShell内部处理,执行后立即写入,适合怕误操作注册表的用户。
① 右键“开始”按钮 → 选择“Windows Terminal(管理员)”。
② 在UAC提示中点击“是”。
③ 粘贴并执行以下命令:
New-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetControlFileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
若返回结果中包含LongPathsEnabled和数值1的对象信息,说明注册表项已成功创建或更新。无需手动验证是否存在,也无需担心是否覆盖旧值。
④ 关闭终端,重启电脑使设置生效。
现在就要传?用Robocopy绕过SMB路径解析限制
Robocopy原生支持长路径且兼容UNC格式,它不走Shell API路径解析,而是直接调用NT内核API处理文件I/O,能绕过资源管理器对SMB路径长度的前端校验。
方法一:以管理员身份打开Windows终端。
方法二:执行命令格式:
robocopy "\SERVERshareerylongsourcepath" "C:localdest" /E /J /R:0 /W:0
注意:两个路径都必须用英文半角双引号包裹;源路径末尾不能带反斜杠,否则robocopy会报“源路径无效”;/J启用无缓冲I/O,避免大文件在局域网传输中卡死;/R:0 /W:0禁用重试,防止因某一级目录访问超时导致整个命令挂起。
方法三:若目标是另一台Win11机器的共享文件夹,可反向操作——在目标机上运行Robocopy,把\SOURCEshare作为源,本地路径作为目标,同样有效。
临时救急:用subst映射短盘符再走局域网
当你无法重启源端或目标端设备,又急需把超长路径文件通过局域网共享出去时,这个方法最轻量。
方法一:在源电脑上,以管理员身份运行CMD,执行:
subst X: "\SERVERshareerylongsourcepath"
方法二:此时网络邻居中会出现X:驱动器,所有子路径都以X:开头,长度瞬间压缩90%以上。
方法三:右键X: → “属性” → “共享” → 设置为网络共享,其他电脑即可通过\本机名X访问,路径长度问题被彻底隔离。
用完后取消映射只需执行:subst X: /d。











