我有一个家庭网络 Win 10 和 Win 7。我经常从 Win 10 读取一台机器 7 上的文件,因为后者连接到我的大屏幕电视。
我经常通过网络从 Win 10 中删除 Win 7 文件。当我查看 Win 7 上的回收站时,文件不在那里!Win 10 上的回收站中也没有文件(我本来以为不会有)。
我刚刚进行了测试。从 10 中删除了 7 上的一个文件。7 的回收站中没有显示。然后使用 Recuva 扫描文件夹,它显示了该文件。我能够恢复它。这是很正常的预期。
因此,谜团就在于为什么它没有出现在 7 的回收站中。
答案1
原因是回收站是一个“特殊”文件夹,其功能仅在本地计算机上处理删除命令时起作用。回收站和 Recuva 等恢复删除工具之间的区别在于,回收站是一个“安全”的地方,用于存储您可能不想删除的文件。回收站中的文件保证可以恢复,除非您故意清空它。当文件“实际”被删除时,它可能可以使用 Recuva 之类的工具进行恢复,但这并不能保证,而且诉诸这些工具意味着出现了严重的问题。
归根结底,回收站是一种便利功能,可帮助您撤消在您自己的计算机上删除自己的文件。它不适用于网络上的其他计算机。
如果您对详细信息感兴趣,请继续阅读...否则,就接受此作为答案。
总结
计算机上每个卷的根目录下都有一个常规(隐藏)目录,名为 $Recycle.Bin。此目录中的子目录代表系统中曾经删除过文件的每个用户的 SID(安全标识符)(每个用户都有一个唯一的 SID)。Windows 将桌面上的回收站表示为您计算机上所有驱动器上每个 $Recycle.Bin 目录的所有用户 SID 子目录的“投影”组合。
例如,假设您的用户 SID 为S-1-5-21-123456789-123456789-123456789-12345
,并且您的计算机有 3 个本地卷(C:
、D:
和E:
),它们可以是 3 个不同的硬盘驱动器、同一驱动器上的 3 个分区或两者的任意组合。在每个硬盘驱动器上,您将拥有以下内容:
C:\$Recycle.Bin\S-1-5-21-123456789-123456789-123456789-12345
D:\$Recycle.Bin\S-1-5-21-123456789-123456789-123456789-12345
E:\$Recycle.Bin\S-1-5-21-123456789-123456789-123456789-12345
Windows 将在桌面上显示一个回收站图标,其中包含所有这三个目录中的文件。使用此设置时,您应该注意以下几点:
- 桌面上的回收站只包含您删除的文件。如果计算机上有其他用户帐户,您将看不到他们删除的文件,他们也看不到您的文件。即使您从所有用户之前都有权访问的目录中删除了文件,情况也是如此。这会产生副作用,即赋予一个用户“捕获”文件的能力;除了最初删除该文件的人之外,没有人可以恢复该文件。
- 当您“删除”文件时,Windows 实际上会对您的 $Recycle.Bin 目录执行“移动”操作,将其重命名为某个独特的名称,并附加一些元数据,指示其原始名称和原始来源(以便您以后可以恢复它)。这就是为什么您似乎可以在同一个目录中拥有多个同名文件,而这通常是不可能发生的。
- 在同一个卷上从一个位置到另一个位置的“移动”操作是即时的,因为只有文件系统指针被修改,从而使文件看起来好像位于不同的目录中。系统不必真正将文件的内容移动到新位置。但是,您不能将文件从一个驱动器“移动”到另一个驱动器(在这种情况下,Windows 会先复制,然后删除原始文件)。这就是为什么每个驱动器都有自己的 $Recycle.Bin 目录。您不希望“删除”操作将可能很大的文件复制到另一个驱动器,这会花费时间,而且另一个驱动器可能没有足够的空间。
此外;
- SMB 协议(Windows 文件共享背后的协议)并非由 Microsoft 发明,在 Windows 出现之前,其设计旨在与计算机无关。因此,它故意不考虑共享所在计算机的底层文件系统。这就是为什么非 Windows 系统可以同时托管和连接 SMB 共享的原因;该协议抽象了实际存储介质的技术细节,允许不兼容的设备(甚至手机和打印机)相互共享文件。
- 这也是为什么您无法在两个不同的文件共享之间“移动”文件的原因。您实际上所做的是将文件下载到您自己的计算机,将文件上传回新位置的远程计算机,然后删除原始文件。即使两个不同的共享实际上只是同一物理文件夹的不同名称,也会发生这种情况。
- $Recycle.Bin 目录不可共享,因为其内容仅对其实际存储的计算机有意义。
当您通过网络删除文件时,将文件“停放”到回收站是您的计算机的工作,而不是远程计算机的工作。这不可能通过网络进行。原因如下:
- 您的计算机无权访问远程计算机的回收站,因为它不可共享。
- 即使它是可共享的,您也可能没有该计算机上的帐户来放置文件(例如,如果共享允许“公共”,匿名用户访问它)。
- 即使您确实有帐户,它会进入哪个卷的回收站?请记住,在 SMB 共享之间“移动”文件实际上是双向复制。您的计算机不知道远程计算机的底层存储。
如果 SMB 协议包含一些功能,让远程计算机能够以自己的方式处理删除操作,那么部分问题可以得到解决。但这也存在一些问题:
- 您使用的其他计算机如何知道查看另一台计算机的回收站中您可能已从中删除的文件?
- 如果您或远程计算机当时处于离线状态,您将如何清空回收站?如果不再有权访问该远程计算机怎么办?您将永远无法清空回收站。
- 如果恢复已删除的文件,它会去哪里?共享名称、服务器名称和 IP 地址可能会随时更改,并且不同计算机上的不同共享实际上可以指向同一物理位置。
- 如果远程共享不在 Windows 计算机上(或者根本不是计算机)该怎么办?它没有回收站的概念来放置文件。
- 还有很多我甚至还没有想到的问题。
如果你只有两台电脑,而且只有你一个人使用,那么很多问题就很难理解了。但从更广泛的角度来看,所有这些都会成为一个大问题。
这就是为什么,在该协议制定近 40 年后,仍然并不是任何通过网络恢复已删除文件的普遍接受的方法。
答案2
从网络共享中删除文件会永久删除它们,就像将它们发送到回收站然后清空一样。您应该在网络驱动器上启用卷影副本以恢复已删除的文件,或者将共享设置为映射驱动器,然后在连接到共享的 PC 上的映射驱动器上启用回收站。