windows回收站的工作原理

您所在的位置:网站首页 windows的回收站是占用哪部分空间的 windows回收站的工作原理

windows回收站的工作原理

2024-07-02 23:26:21| 来源: 网络整理| 查看: 265

windows上的回收站功能我们应该都用过,只要不是使用Shift+Delete直接删除,删除的文件或文件夹都会先进入回收站,给我们一次反悔的机会。

显示或隐藏回收站

如果你发现桌面上没有回收站图标,可以在这里打开:

如果你使用了Wallpaper Engine之类的桌面,那么可以直接在文件管理器的地址中输入回收站来直接跳转。

本质

回收站本质上就是特殊的文件夹。当我们删除一个文件或文件夹时,系统会将其移动到回收站,而不是直接删除。直到用户彻底删除或清空回收站时,系统才会真正删除。而在那之前,随时可以还原被删除的文件。

在每个磁盘的根目录都有一个名为$Recycle.bin的文件夹,在回收站 属性中可以设置是否开启,以及它的最大占用空间(默认值为磁盘总大小的5%左右)。

每个磁盘下的$Recycle.bin各自维护自己的回收站,而在打开回收站应用时,会将所有磁盘的回收站内容合并显示。

目录结构分用户存放

在$Recycle.bin文件夹下,会分用户来存放被删除的文件。比如:

12345C:/└── $Recycle.bin/ ├── S-1-5-18 ├── S-1-5-21-3224713530-1295428985-2222104684-1000 └── S-1-5-21-3224713530-1295428985-2222104684-1001

目录名称是用户的SID,在windows中大量使用,可以在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList中找到每个用户名对应的SID。

个性化文件夹

在每个用户目录下,都会有一个desktop.ini,来描述这个文件夹如何显示。

123[.ShellClassInfo]CLSID={645FF040-5081-101B-9F08-00AA002F954E}LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-8964 被删除的文件

被删除的文件在移动进回收站时,为了避免重名,会被重新命名。生成一个唯一ID后命名为$R{id}.{ext},扩展名维持原样。然后将元数据存放至$I{id}.{ext}。元数据包括:文件名称,文件原路位置,删除时间,文件大小。基本上就是我们在回收站应用中看到的信息。

$I文件的结构为:

偏移 字节 说明 0 4 $I文件的版本号,win10为2,vista到10之前都为1 8 8 文件的大小 16 8 删除时间 24 4 文件名的长度,版本v2才有这项 28 不定长 文件名

我们拿BaiduNetdisk_6.8.4.1.exe这个文件来看看:

123456C:/└── $Recycle.bin/ └── S-1-5-21-3224713530-1295428985-2222104684-1001/ ├── $IAA5WRG.exe ├── $RAA5WRG.exe └── desktop.ini

使用十六进制文本编辑器来查看文件,直接可以使用vscode的Hex Editor插件,也可以使用HxD等工具。推荐使用vscode:

1code 'C:\$Recycle.Bin\S-1-5-21-3224713530-1295428985-2222104684-1001>\$IAA5WRG.exe'

$IAA5WRG.exe的内容为:

按照上面的结构解析:

版本号为2 文件大小为0x026688F0,十进制为40274160,与回收站中显示的39,331 KB一致 删除时间为0x01D9AA55734E8C90,十进制为133324947967610000,使用w32tm.exe /ntte 133324947967610000转换为2023/6/29 14:46:36,与回收站中显示一致 文件名长度为0x00000036,十进制为54,表示文件名占了54个unicode,即108个字节 文件名为C:\BaiduNetdiskDownload\记录数据\BaiduNetdisk_6.8.4.1.exe,包含末尾的0x0000,刚好108个字节 被删除的文件夹

再来看看文件夹。

123456789F:/└── $Recycle.bin/ └── S-1-5-21-3224713530-1295428985-2222104684-1001/ ├── $rzg1h6u/ │ ├── b/ │ │ └── 1.txt │ └── a.txt ├── $izg1h6u └── desktop.ini

可以发现,文件夹中的内容原封不动的被移动了过来。

再看看$I文件。

按照上面的结构解析:

版本号为2 文件大小为0x00000001,十进制为1,与回收站中显示的1 KB一致 删除时间为0X01D9AA5405E4B630,十进制为133324941836990000,使用w32tm.exe /ntte 133324941836990000转换为2023/6/29 14:36:23,与回收站中显示一致 文件名长度为0x00000009,十进制为9,表示文件名占了9个unicode,即18个字节 文件名为F:\tmp\a,包含末尾的0x0000,刚好18个字节 深入为什么回收站需要每个分区都有一个?

回收站本质上是一个文件夹,将文件删除进回收站的本质将文件是移动到回收站。

同一分区内的文件移动本质上不会改变文件的物理位置,只是改变分区表中文件的位置指向信息,这样可以极大的加速文件删除和恢复的操作。

为什么windows回收站不允许展开文件夹呢?

我理解不允许展开的原因是删除一整个文件夹是一个可回退的原子操作,所以要还原就还原整个文件夹,不允许还原部分文件。

而如果允许展开,就很容易给用户一个错觉:允许还原文件夹中的某单个文件。但右键后又发现不能这样操作,容易给用户造成困惑。

macOS的垃圾篓有什么不同吗?

macOS的垃圾篓和windows回收站一样,本质上也是多个文件夹的组合。但位置在/Users/username/.Trash/和/Volumes/LOCALDRIVE/.Trashes/。

另外一个很大的不同是它没有像windows那样将删除的文件更名为$I{id},而是保持了原名称。所以如果连续删除两个重名文件,后删除的那个会被自动重命名。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭