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,运行了一晚上才删除完的。
  • 每个分区都会自带一个回收站,哪个分区有问题,删除哪个!
  • 关于数据存储的问题,需要深入了解。
相关推荐
redfred10 小时前
HandBrake 使用教程:开源视频压缩工具 视频太大压缩 MKV转MP4 批量转码 硬件加速 Windows/macOS/Linux
windows·开源·音视频
kakakahahahaha11 小时前
【Windows】C盘拒绝访问0x80070005的7步排查
windows·电脑·内容运营·软件需求
万年咸鱼13 小时前
Java ArrayList 详解:原理、用法与实战
java·开发语言·windows
奈斯先生Vector13 小时前
本地图片识别怎么接入多模态 AI?用 Python API 理解 GPT-4o Vision 的真实工作流
开发语言·人工智能·windows·python·网络协议·http·aigc
yyywxk14 小时前
ChatGPT/Codex Windows 桌面版“幽灵会话”问题:网页端已删除,桌面端仍显示且无法删除/归档
windows·chatgpt
万年咸鱼15 小时前
Java List 接口详解:从基础到实战
java·windows·list
Neighbor_OldY15 小时前
【实战复盘】RDP暴力破解与内网横向移动溯源:Windows全套排查命令与事件ID硬核解析
运维·windows·web安全
深念Y15 小时前
Windows 11 工具链部署与 SSH 踩坑笔记
windows·笔记·ssh
可爱系程序猿17 小时前
Windows 11 添加共享打印机提示 0x00000bc4:从 RPC 发现到策略配置排查
windows·网络协议·rpc
草莓熊Lotso2 天前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存