Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的"

在日常使用 Windows 10 时,有时会遇到删除很普通的文件夹时提示“访问被拒绝”,以管理员权限重试后依然提示没有权限。如果使用命令行删除,则会提示“无法删除文件夹 XXX,目录不是空的。”。

本文将介绍其原因并提供解决方案。


本文内容

    • 删除文件夹遭到拒绝
    • 解决方案

删除文件夹遭到拒绝

有时我们在删除一个很普通的文件夹时,会提示需要提升权限才能删除。

Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的
▲ 需要提升权限

其实按照经验,这种问题与权限并没有什么关系。尤其是以上这种 NuGet 缓存目录下的文件夹,和权限更是扯不上关系。

所以其实点了“继续”也并没有什么左右,依然是没完没了的错误。

Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的
▲ 需要访问权限

如果我 一层层进入到文件夹的里面,然后 先删除文件,再一层层 退出来删掉文件夹,那么这个文件夹就能被正常删除掉。

这至少能说明,并没有文件或文件夹处于被占用的状态!!!

所以这个时候我考虑使用命令行删除:

Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的
▲ 使用命令行删除

命令行删除时,给了一个错误提示:

rd : Directory C:\Users\lvyi.nuget\packages\walterlv.package.demo\12
.0.27-alpha\src\Demo_\MagicalDemo_\Magical_ cannot be removed
because it is not empty.

意思是说,命令行在删除其中一个子文件夹的时候出错,原因是:“目录不是空的。”

如果继续翻看下面的错误提示,发现这是一个按文件夹递归的提示。

解决方案

在网上搜索“目录不是空的”能得到不少结果,而且提供了不少解决方案:

  • windows - Batch - Getting “The directory is not empty” on rmdir command - Stack Overflow
  • powershell - Cannot remove item. The directory is not empty - Stack Overflow
  • 还有更多……

然而,无论敲入什么样的命令,都没有用。这时我抱着试一试的心态去搜索框(小娜)中搜索“资源监视器”或直接输入 resmon 命令打开资源监视器。在“关联的句柄”中我输入了无法删除的文件夹名称,才终于找到了根本原因:

Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的
▲ 资源监视器

结束掉可能用到了这个版本 NuGet 包的 Visual Studio 后,文件夹可以被正常删除掉了。

Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的
▲ 因为删除太快,好不容易抓到的一张图

所以什么“需要管理员权限”啊,什么“目录不是空的”,都是假的!!!真正的原因还是文件夹被占用。


我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

你可能感兴趣的:(Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的")