根本原因是Win32 API默认启用MAX_PATH=260限制,需先通过组策略或注册表启用长路径支持并重启,再用PowerShell(Remove-Item -Path "?...")或CMD(rmdir /s /q "?...")强制删除。

Win11中遇到“路径太长”导致文件或文件夹无法删除,根本原因不是文件系统不支持,而是Win32 API默认启用MAX_PATH=260的硬性限制,当完整路径(含盘符、反斜杠、文件名和结尾空字符)超过260字符时,资源管理器、CMD、PowerShell等常规操作会直接拒绝访问或报错0x80010135,必须先解除该限制才能正常操作。
启用系统级长路径支持
这一步是所有后续操作的前提,不开启则任何删除命令都会在路径解析阶段失败。
方法一:通过组策略编辑器(适用于专业版/企业版/教育版)
按 Win + R 输入 gpedit.msc → 回车打开本地组策略编辑器 → 依次展开「计算机配置」→「管理模板」→「系统」→「文件系统」→ 找到并双击「启用 Win32 长路径」→ 选择「已启用」→ 点击「确定」。
方法二:通过注册表(适用于家庭版等无gpedit的版本)
按 Win + R 输入 regedit → 回车进入注册表编辑器 → 导航至 HKLMSYSTEMCurrentControlSetControlFileSystem → 在右侧空白处右键 →「新建」→「DWORD (32位)值」→ 命名为 LongPathsEnabled → 双击该值,将数值数据设为 1 → 点击「确定」。
【必须重启电脑才能生效】 修改后不重启,CMD、PowerShell、资源管理器仍按旧规则处理路径,删除操作依旧失败。
让Git也支持长路径(如涉及node_modules等深层目录)
如果你要删的是Node.js项目里的嵌套文件夹(比如node_modules下某层路径超长),而你习惯用Git Bash或VS Code终端操作,Git自身默认仍禁用长路径——即使系统已开启,Git也会主动截断路径并报错。
以管理员身份打开Windows终端(PowerShell或CMD)→ 执行以下命令:git config --global core.longpaths true
这行命令会写入Git全局配置,使Git调用Win32 API时自动添加\?前缀,绕过260限制。不执行此步,用git clean -fd删node_modules仍可能卡在某一层。
强制删除超长路径文件或文件夹
系统长路径已启用且重启后,即可使用以下任一方式安全删除:
第一步:确认目标路径全长度(含盘符)确实>260字符
在资源管理器地址栏点击路径 → 全选复制 → 粘贴进记事本 → 查看字符数(可用Word「审阅」→「字数统计」辅助验证)。若不足260,问题不在路径长度,无需走本流程。
第二步:用PowerShell执行带\?前缀的强制删除
以管理员身份运行Windows终端 → 输入:Remove-Item -Path "\?D:yourerylongpath oolder" -Recurse -Force
注意:必须手动加上\?前缀,这是Windows识别长路径的唯一触发标识;漏掉它,PowerShell仍走MAX_PATH逻辑,报错照旧。
第三步:用CMD替代方案(兼容性更强)
管理员CMD中执行:rmdir /s /q "\?D:yourerylongpath oolder"/s递归删除子目录,/q静默确认,\?前缀不可省略。此命令不经过Shell路径解析,直接交由内核处理,成功率高于资源管理器右键删除。

















