在日常使用 Windows 10 时,有时会遇到删除很普通的文件夹时提示“访问被拒绝”,以管理员权限重试后依然提示没有权限。如果使用命令行删除,则会提示“无法删除文件夹 XXX,目录不是空的。”。
本文将介绍其原因并提供解决方案。
有时我们在删除一个很普通的文件夹时,会提示需要提升权限才能删除。
其实按照经验,这种问题与权限并没有什么关系。尤其是以上这种 NuGet 缓存目录下的文件夹,和权限更是扯不上关系。
所以其实点了“继续”也并没有什么左右,依然是没完没了的错误。
如果我 一层层进入到文件夹的里面,然后 先删除文件,再一层层 退出来删掉文件夹,那么这个文件夹就能被正常删除掉。
这至少能说明,并没有文件或文件夹处于被占用的状态!!!
所以这个时候我考虑使用命令行删除:
命令行删除时,给了一个错误提示:
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.
意思是说,命令行在删除其中一个子文件夹的时候出错,原因是:“目录不是空的。”
如果继续翻看下面的错误提示,发现这是一个按文件夹递归的提示。
在网上搜索“目录不是空的”能得到不少结果,而且提供了不少解决方案:
然而,无论敲入什么样的命令,都没有用。这时我抱着试一试的心态去搜索框(小娜)中搜索“资源监视器”或直接输入 resmon 命令打开资源监视器。在“关联的句柄”中我输入了无法删除的文件夹名称,才终于找到了根本原因:
结束掉可能用到了这个版本 NuGet 包的 Visual Studio 后,文件夹可以被正常删除掉了。
所以什么“需要管理员权限”啊,什么“目录不是空的”,都是假的!!!真正的原因还是文件夹被占用。
我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。
如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。