首页/系统/Windows 运维速查/长路径(260 字符限制)处理
磁盘与文件43 条

长路径(260 字符限制)处理

经典 260 上限来自历史 API:Win10 1607+ 可开启长路径支持,加上应用与工具本身支持,才能彻底摆脱限制。

Windows 运维速查系统更新于 2026-10-13

260 字符限制从哪来

MAX_PATH 这个 260 字符限制来自早期 Win32 API 的设计:盘符加冒号加反斜杠再加 255 个字符的路径,绝大多数老程序都按这个长度分配缓冲区。Windows 10 1607 与 Server 2016 起系统提供了长路径支持开关,但这是「系统允许」而不是「应用一定支持」——程序本身要声明长路径感知,工具也要更新版本,否则深目录仍会报「文件名或扩展名太长」。

基本信息

适用平台Windows 10 1607 与 Windows Server 2016 及以后支持开关
注册表位置HKLM\SYSTEM\CurrentControlSet\Control\FileSystem 下的 LongPathsEnabled
组策略路径计算机配置 → 管理模板 → 系统 → 文件系统 → 启用 Win32 长路径
生效方式修改后需重启(部分场景需应用自身也支持)
命令行绕过使用 \\?\ 前缀给出完整路径(不支持相对路径)
权限要求修改注册表与策略需要管理员

典型使用场景

  • 前端工程目录:node_modules 嵌套极深,解压或安装时报路径过长
  • 构建产物迁移:从 Linux 迁到 Windows 后深目录复制失败
  • 备份与归档:老备份工具跳过超长路径下的文件,恢复时缺文件
  • 软件卸载残留:删除深目录时资源管理器直接报错
  • 磁盘迁移:跨盘拷贝深层目录屡次失败,需确认工具是否支持长路径

常用示例

常用示例
# 查看当前是否已启用长路径
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name LongPathsEnabled
# 开启(管理员执行,重启后全面生效)
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name LongPathsEnabled -Value 1
# 组策略方式(域环境统一下发)
# 计算机配置 -> 管理模板 -> 系统 -> 文件系统 -> 启用 Win32 长路径
# 统计目录树中最长路径长度,用于评估是否需要处理
$max = (Get-ChildItem 'D:\Project' -Recurse -File -ErrorAction SilentlyContinue |
  ForEach-Object { $_.FullName.Length } | Measure-Object -Maximum).Maximum
'{0} 字符' -f $max

几种应对手段对照

手段适用场景注意
LongPathsEnabled 注册表本机统一解除限制应用也需支持,未声明的老程序仍会失败
组策略启用长路径域内批量下发需 1607 以上系统,生效常需重启
\\?\ 前缀命令行临时访问深路径必须完整路径、不支持相对路径,部分工具不认
8.3 短名老工具临时访问目录需未关闭短名生成,且不易阅读
robocopy 等新工具大批量迁移复制对长路径支持较好,迁移优先选它
长路径支持是链路问题:操作系统、API、应用三者都支持才彻底解决。只改了注册表就期待所有软件恢复正常,通常会在某个不支持的老工具上重新碰壁。
深目录在删除操作上也常失败:资源管理器与部分老旧命令删除超长路径时直接报错,可先用支持长路径的工具重命名上层目录缩短路径,再删除,效率更高。

迁移与清理的可行做法

迁移与清理的可行做法
REM 用 robocopy 做长路径迁移(对新路径支持较好)
REM robocopy D:\Src E:\Dst /E /COPY:DAT /R:1 /W:1 /XJ /NP /LOG:D:\copy.log
REM 清理深目录:先缩短上层名称,再逐层删除
REM Rename-Item -LiteralPath 'D:\Project\a\b\c' -NewName 'c2'
REM 需要查看具体超长路径时,用支持长路径的工具枚举并导出清单
启用长路径后要留意老备份软件的清单:部分工具仍按 260 字符截断或跳过,备份「成功」但缺少深路径文件,恢复时才发现,审计时应抽样验证深目录是否真在备份集内。

易错点

  • 只开启系统开关就认为问题解决:应用需自身支持长路径,未声明感知的老程序依旧报错
  • 改完注册表不重启就验证:设置需要重启才全面生效,容易误判为无效
  • 误用 \\?\ 前缀配相对路径:该前缀要求完整路径,写法不符会直接失败
  • 备份工具静默跳过超长路径文件导致恢复缺文件,备份审计需抽样验证深目录
  • 在低版本系统(如 Windows 7 或 Server 2012)上套用本方案:系统本身不支持该开关,应先评估升级

数据来源与参考

  • Microsoft Learn:最大路径长度限制
  • Microsoft Learn:启用长路径支持

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌