当前位置: 首页 > news >正文

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

在日常使用 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.

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

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

解决方案

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

  • 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 命令打开资源监视器。在“关联的句柄”中我输入了无法删除的文件夹名称,才终于找到了根本原因:

资源监视器
▲ 资源监视器

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

删除文件夹
▲ 因为删除太快,好不容易抓到的一张图

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


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

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

知识共享许可协议

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

相关文章:

  • 如何精准地用打印机在贺卡或邀请函上打字
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • 使用 Postman 调试 ASP.NET Core 开发的 API
  • 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式)
  • UWP 中的各种文件路径(用户、缓存、漫游、安装……)
  • 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇)
  • 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇)
  • csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的?
  • C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议
  • WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object)
  • 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键
  • 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件)
  • 在 Visual Studio Code 中添加自定义的代码片段
  • 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限
  • 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • bootstrap创建登录注册页面
  • css系列之关于字体的事
  • Fastjson的基本使用方法大全
  • KMP算法及优化
  • LintCode 31. partitionArray 数组划分
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Node 版本管理
  • PV统计优化设计
  • Tornado学习笔记(1)
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 精彩代码 vue.js
  • 老板让我十分钟上手nx-admin
  • 聊聊flink的TableFactory
  • 前嗅ForeSpider采集配置界面介绍
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (1)Android开发优化---------UI优化
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (接口自动化)Python3操作MySQL数据库
  • (六)Hibernate的二级缓存
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • /proc/stat文件详解(翻译)
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [30期] 我的学习方法
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [C++] 如何使用Visual Studio 2022 + QT6创建桌面应用
  • [CF407E]k-d-sequence
  • [Docker]十.Docker Swarm讲解