右键删除一个文件夹,弹窗写「操作无法完成,因为文件已在另一个程序中打开」,点继续还是删不掉。这句提示八成是真有进程占着句柄,不是系统抽风。
先定位占用进程,别急着重启
任务管理器→性能→打开资源监视器→CPU 标签页,在「关联的句柄」框里输入文件名,下面会列出正在访问它的进程,右键结束进程再删。
也可以在「详细信息」里按名称排一遍,把编辑器、同步盘、杀毒软件先退出。网盘客户端和 Everything 这类索引工具,是最常见的隐形占用者,关掉窗口不算退出,得从托盘图标右键退出。
权限和只读属性也会挡住删除
提示「你需要提供管理员权限」时,先看文件属性里「只读」有没有勾上,去掉再删。整棵目录树被设成只读,得用命令批量清属性。
attrib -r -s -h 目标目录 /s /d在目标目录的上一级打开命令行执行,把名字换成自己的。还是不行就看安全选项卡,当前账号没有完全控制权,点高级→更改所有者,把所有者改成自己,再回权限里给自己勾上完全控制。
提示目录不是空的,其实里面还有东西
报错 0x80070091,内容说目录不是空的,通常是里面有超长路径、以点开头的隐藏文件,或者文件名里带特殊字符。资源管理器看不全,命令行能看见。
建一个空文件夹,用镜像方式覆盖过去,把目标目录清空,这是绕开路径长度限制的常用办法,比一个个找快。执行前把路径核对两遍,镜像写反了会把好数据清掉。
根源在磁盘或者文件系统
提示「文件或目录损坏且无法读取」,先对所在分区跑一遍磁盘检查,再试删除。U 盘、移动硬盘出现这种情况,多半是拔之前没安全弹出。
被同步软件占用的文件,退出登录比结束进程更彻底,不然它几秒后重新拉起,句柄又回来了。云盘目录里的文件,直接在客户端里删,比在资源管理器里删稳。
建议的处理顺序
资源监视器找句柄→退出相关软件→清只读和权限→命令行删→安全模式删→磁盘检查。重启能解决一半的问题,但重启前先记下是哪个文件、报的什么错,不然下次还卡在同一个地方。