Windows系统的回收站文件加载慢无法删除该如何解决

问题场景

近期我在进行地图数据服务维护的过程中,生成了大量的切片数据,由于切片数据不再使用了,我就直接删除,放在回收站里了。最近我不小心误删了一个文件,想要恢复,却发现了一个重大的问题,回收站打不开了,打开后总是显示正在处理...清空回收站也无法不管用。咋办呢?

起初我还以为中病毒了,我下载了火绒安全查杀了以后也不管用,进行垃圾清理就卡主...直接无语了。


知识点拓展

经过我多天的学习终于明白回收站的含义,先分享一下我的理解,有不对的地方欢迎指正。

回收站是电脑操作系统中的一个特殊目录,用于存储被删除但尚未完全清除的文件和文件夹。当删除文件或文件夹时,它们并不立即从硬盘驱动器中移除,而是被移动到回收站中,这样用户可以在意外删除重要文件时进行恢复。回收站通常位于每个硬盘分区的根目录下,用户可以通过清空回收站来永久删除这些文件。

这个问题让我联想到近期正在学习的《Linux系统的中的文件误删改如何恢复》,我对文件的存储方式有了更加深入的理解。
管理多个数据块 1---* Inode - inode_id: int // 唯一标识符 - file_type: enum // 文件、目录、链接 - permissions: int // 权限掩码 - owner: int // 所有者UID - size: long // 文件大小 - ctime: timestamp // 创建时间 - mtime: timestamp // 修改时间 - block_pointers: List // 数据块指针列表 +getBlockIds() +addBlockId(int id) Block - block_id: int // 数据块唯一ID - data: byte[] // 存储的二进制数据 - status: enum // 空闲/已占用/损坏 +read(offset: int, len: int) +write(offset: int, data: byte[])

  • 在linux系统中,索引节点(inode)是文件的"身份证",每个文件或目录都有一个唯一的inode编号

inode中存储了文件的几乎所有元数据,包括:

文件类型:如普通文件、目录、符号链接等。

文件的读、写、执行权限。

所有者信息:用户ID(UID)和组ID(GID)。

文件大小:以字节为单位。

时间戳:包括访问时间(atime)、修改时间(mtime)和元数据变更时间(ctime)。

数据块指针:指向文件实际内容存储位置的指针。

  • inode与文件名是分开存储的,inode中不存储文件名,文件名是存储在目录文件中的,通过目录中的文件名与inode编号的映射关系,系统可以找到对应的inode
  • 文件名存储在目录文件中,而inode负责存储文件的元数据和数据块指针。这种设计使得文件系统具有更高的灵活性,例如支持硬链接和软链接(和windows中快捷方式类似)。
  • 文件元数据并不等同于inode,但inode是文件元数据的核心部分。通过inode,系统可以快速访问文件的元数据和实际内容。

我们所说的删除了文件,其实并没有真正的删除,只是删除了文件的索引节点(inode)与数据块(block)的映射关系,这些没有被删除的文件,在磁盘中会被打上空闲的标志,如果有后续的数据写入,会重新写入到这些未使用数据块中。如果想要恢复删除的数据需要在数据写入之前,使用特定的工具进行恢复。

在Windows的系统中也是这个原理,用户可以通过清空回收站来永久删除这些文件。

原因分析

就这个奇葩问题就折腾了我好2天时间解决!我真的太难了!!

前边已经说过了,我删除的地图切片放在回收站里了,切片数据为256x256的png图片,非常多,大约有8个GB的文件,导致回收站加载的非常慢。如下图所示我的地图切片数据放在F盘内,而我的回收站属性F盘的大小竟然设置了22047MB的大小!!因此删除的文件小于22G都会放在回收站里面,这么大量的数据加载当然会很慢!建议把这个数据设置小一点(根据情况设置吧,懂得原理就好说了)。


解决方案

方法1. 快速处理

  • 强制终止卡死进程并重启
    • 按 Ctrl+Shift+Esc 打开任务管理器,找到并结束 "文件资源管理器" 或清理软件进程。
    • 右键任务栏空白处,选择 "退出资源管理器",再在任务管理器 "文件→运行新任务" 中输入 explorer 重启。
    • 重启电脑,避免后台程序占用回收站文件。

对我遇到遇到的问题不起作用

方法2.用命令行强制清空回收站(亲测有效)

在Windows中我们所说的回收站,其实是一个文件夹,是一个存放在每个磁盘下的隐藏文件夹$Recycle.bin,通过下图操作可查看到。而在桌面上的显示的回收站是将每个磁盘的$Recycle.bin进行了汇总。

右键开始菜单,选择 "Windows 终端(管理员)"或 "命令提示符(以管理员身份运行)"(Win10)。

输入并执行以下命令,按回车:

cmd 复制代码
#清空全部回收站
rd /s /q %systemdrive%\$Recycle.bin

我的问题出现在F盘,若其他分区也有回收站问题,依次执行如下代码,:

dos 复制代码
rd /s /q  C:\$Recycle.bin
rd /s /q  D:\$Recycle.bin
rd /s /q  E:\$Recycle.bin
rd /s /q  F:\$Recycle.bin

执行后回收站会重建,可正常扫描和清空。

运行完成后,火绒软件的垃圾清理也不会卡死了,问题得到解决。

方法3.修复系统文件与组件

在管理员终端中依次执行(每步完成再下一步,耗时较长):

dos 复制代码
sfc /SCANNOW

Dism /Online /Cleanup-Image /ScanHealth

Dism /Online /Cleanup-Image /CheckHealth

Dism /Online /Cleanup-Image /RestoreHealth

完成后重启电脑,再尝试扫描。

检查并修复磁盘错误

管理员终端中执行(将 c: 改为目标盘符,需重启后生效):

dos 复制代码
chkdsk c: /r

提示 "无法立即执行" 时,输入 y 并回车,重启后系统会在开机时自动检查修复(耗时比较长,我用这个方法,检查了一个多小时)。

小结

  • 我先是使用的方法1,结果不行。然后我有使用了方法3,最后使用方法2问题的到解决的。 我在执行方法3的过程中也检查出存在损坏的文件并修复了,重复运行后没有检查出问题,由于我的文件很多使用方法2,运行了一晚上才删除完的。
  • 每个分区都会自带一个回收站,哪个分区有问题,删除哪个!
  • 关于数据存储的问题,需要深入了解。
相关推荐
love530love20 小时前
EPGF 新手教程 13在 PyCharm(中文版 GUI)中创建 Hatch 项目环境,并把 Hatch 做成“项目自包含”(工具本地化为必做环节)
开发语言·ide·人工智能·windows·python·pycharm·hatch
峰上踏雪21 小时前
Go(Golang)Windows 环境配置关键点总结
开发语言·windows·golang·go语言
lusasky1 天前
在Windows上编译、安装Rust
开发语言·windows·rust
麻辣长颈鹿Sir1 天前
CMAKE指令集
linux·运维·windows·cmake·cmake指令集
Alice10291 天前
如何在windows本地打包python镜像
开发语言·windows·python
北京流年1 天前
windows安装jenkins并且编译app
运维·windows·jenkins
抹香鲸之海1 天前
Easyexcel 多级横向合并表头
java·开发语言·windows
烛衔溟1 天前
C语言并发编程:Windows线程
c语言·c++·windows·性能优化·多线程·并发编程·线程同步
love530love1 天前
Flash Attention 2.8.3 在 Windows + RTX 3090 上成功编译与运行复盘笔记(2026年1月版)
人工智能·windows·笔记·python·flash_attn·flash attention·z-image
※※冰馨※※1 天前
【QT】初始化显示时正常,操作刷新后布局显示问题。
开发语言·c++·windows·qt