回收站是如何工作的?

Jon*_*hon 31 windows recycle-bin

Windows 中的回收站实际上有什么作用?它只是一个美化的文件夹和一个存放即将被删除的文件的地方,还是它做了一些特定的事情?具体来说,“移动”到回收站的文件是实际移动到硬盘上的,还是只是移动文件的指针?我是一个相当有经验的用户,我只是想对回收站进行更深入的解释。

Tam*_*man 33

引用被删除,一个元数据文件保存在回收站中以了解原始位置。

在早期,在 Windows 95 和 98 上,它位于\RECYCLED. 在 Windows 2000 及更高版本上,它被重命名为\RECYCLER. 从 Windows Vista 开始,它现在是一个名为 \$Recycle.Bin.

使用进程监视器查看引擎盖下的 I/O,打开过滤器Recycle.Bin并访问它。:)

例如,当我这样做时:

notepad \$RECYCLE.BIN\S-1-5-21-0192837465-987654321-0123456789-1000\$EXAMPL5
Run Code Online (Sandbox Code Playgroud)

注意:长文件夹名称是User SID。最后一个文件夹名称是基于元数据的哈希值。

我得到一个包含元数据信息的文件,如下所示:

                Ö¸ÌC : \ P a t h \ T o \ S o m e \ E x a m p l e . t x t
Run Code Online (Sandbox Code Playgroud)

文件路径之间有空格的原因是因为它存储在宽字节字符中,以支持某些语言以及 unicode 和其他什么的特殊字符。早期的符号是二进制的,包含文件大小和权限等信息,以及指向文件数据的指针。本质上,它包含了足够的信息来重建原始参考......

遗憾的是,Windows Internals 一书没有涵盖这一点,否则我会有更多参考资料。我还没有找到任何详细介绍此内容的文章,无论是 Microsoft 还是第三方人员。它们可能确实存在,但我发现对主要概念进行逆向工程更容易......