错误0x80070091是ntfs元数据误判目录非空所致,可依次尝试:1.新建文本文档触发元数据刷新;2.用robocopy /mir强制重写目录状态;3.以takeown、icacls获取权限后,用rd /s /q \?\路径直通nt内核删除。

你在删除某个文件夹时,系统弹出“错误 0x80070091:目录不是空的”,点进去却空空如也,连隐藏文件都打开了还是找不到任何内容,右键删除直接卡死或报错——这不是路径太长、也不是权限没给够,是NTFS底层元数据把“空”记成了“非空”,系统在说谎。
先让系统重新认一遍这个“空”
这一步成本最低,不改权限、不碰命令行,专治刚出现的误判。它只是轻轻拍一下系统肩膀,提醒它:“你再看看,真没东西了。”
打开文件资源管理器,逐层双击进入目标文件夹的最深层子目录(即里面再没有其他子文件夹的那一层)。
在该目录空白处右键 → “新建” → “文本文档”,命名为a.txt(名字任意,但不能是.或..)。
关闭所有资源管理器窗口,返回上一级,再次右键尝试删除原始目标文件夹。多数情况下,此时图标已变灰或直接消失——说明元数据刷新成功。
用Robocopy把“空”硬塞进去
当新建文件无效,说明目录结构已损坏,比如存在NTFS循环链接、残留的.或..非法条目,或深层嵌套导致Windows外壳无法解析完整路径。Robocopy的/MIR参数不走常规删除逻辑,而是以“空源覆盖目标”的方式强制重写整个目录树状态。
方法一:PowerShell管理员模式(推荐,适配中文路径与空格)
在目标文件夹的父目录中,按住Shift键右键空白处 → “在此处打开PowerShell窗口(管理员)”。
执行:mkdir Empty → 回车,创建临时空文件夹。
执行:robocopy .\Empty\ .\BadFolder\ /MIR /NFL /NJH(【注意】BadFolder必须与你要删的文件夹名完全一致,区分大小写,且不能带路径前缀)。
等待输出末尾出现“已复制: 0”和“直通次数: 0”,关闭窗口,立即刷新资源管理器——原文件夹通常已不可见或可右键删除。
绕过Windows限制,直通NT内核删除
前两步失败,基本可以断定存在句柄死锁、路径超260字符、或文件夹名含. ..等Win32非法字符。此时必须跳过全部外壳校验,直连NT内核删除接口。
第一步:获取所有权并赋予权限
按Win + R,输入powershell,再按Ctrl + Shift + Enter,以管理员身份运行PowerShell。
粘贴执行:takeown /f "D:\BadFolder" /r /d y → 回车(【注意】路径中的D:\BadFolder必须替换成你的实际完整路径,英文双引号不可省略)。
紧接着执行:icacls "D:\BadFolder" /grant administrators:F /t → 回车,授予管理员完全控制权。
第二步:强制穿透删除
在同一PowerShell窗口中,粘贴并运行:CMD /C "RD /S /Q \?\D:\BadFolder"(若路径含空格或特殊符号,务必用英文双引号包裹整个\?\路径,例如"\?\D:\My Folder")。











