错误0x80070091是NTFS元数据误判目录非空所致,应先通过新建文本文档触发系统重扫修正缓存;若无效,再用Robocopy /MIR镜像清空绕过校验;最后可借助管理员PowerShell获取所有权并执行CMD /C "RD /S /Q \?\路径"强制删除。

你在Windows里右键删除一个文件夹时,系统弹出“错误0x80070091:目录不是空的”,明明点开看里面空空如也,连隐藏文件都显示出来了,还是删不掉——这不是你操作错了,是NTFS文件系统元数据出了错,系统误判该目录仍有子项引用。
先触发系统重扫,修正元数据误判
这一步成本最低、最安全,适合刚遇到问题且不确定文件夹深层结构是否异常的情况。它不改任何数据,只让系统重新读取并刷新路径状态。
打开文件资源管理器,逐层双击进入目标文件夹的最底层子目录(即没有再下一级子文件夹的那个目录)。
在该最底层空白处右键 → “新建” → “文本文档”,命名为a.txt(名字任意,但不能是.或..)。
关闭所有窗口,返回上一级,再次尝试右键删除原始目标文件夹。如果成功,说明只是元数据缓存未更新;若仍失败,说明存在句柄占用、路径过长或非法命名条目等更深层问题。
用Robocopy镜像清空,绕过系统校验
当文件夹结构极深、含大量嵌套或存在不可见NTFS特殊条目(如损坏的短文件名、流文件残留)时,普通删除会卡在路径解析阶段。Robocopy的/MIR参数直接以“源为空”为指令同步目标,强制抹平整个目录树。
方法一:手动执行命令
在目标文件夹所在磁盘根目录(例如D:\)下新建一个名为Empty的空白文件夹。
按Win + R,输入cmd回车,启动普通命令提示符(无需管理员)。
输入:cd /d D:\(请将D:\替换为实际路径)→ 回车。
执行:robocopy "Empty" "BadFolder" /MIR(其中BadFolder是你要删的文件夹名,必须与当前目录下名称完全一致,区分大小写)。
等待命令输出末尾出现已复制: 0和直通次数: 0后,关闭窗口,立即尝试删除原文件夹。
方法二:一键批处理(推荐给路径含中文或空格的用户)
在目标文件夹同级目录新建记事本,粘贴以下内容:
@echo off
mkdir Empty
robocopy "Empty" "%~n1" /MIR
rmdir /s /q "Empty"
pause
保存为clean.bat,然后把要删的文件夹拖到这个bat文件图标上释放——自动完成创建空目录→镜像清空→删除空目录三步。
管理员PowerShell强制穿透删除
第一步:获取所有权并赋予权限
按Win + R,输入powershell,再按Ctrl + Shift + Enter确认以管理员身份运行。
粘贴并执行:takeown /f "D:\path\to\BadFolder" /r /d y & icacls "D:\path\to\BadFolder" /grant administrators:F /t(把D:\path\to\BadFolder换成你的真实完整路径)。
第二步:执行强制删除
粘贴并运行:CMD /C "RD /S /Q \?\D:\path\to\BadFolder"(同样替换为你的真实路径)。
若命令执行后资源管理器中文件夹图标仍未消失,刷新一次视图即可。

















