如果我从 zip 文件中删除某些内容,还能恢复吗?

如果我从 zip 文件中删除某些内容,还能恢复吗?

如果我编辑或删除了 zip 文件中的某些内容,还能恢复吗?例如,我有这个压缩文件夹,在将其发送给某人之前,我解压了该文件夹,然后使用我的计算机编辑和删除了其中的一些文件,然后在修改之后,我再次将其压缩,然后将其发送给某人。他们还能恢复已编辑和删除的文件吗?

答案1

创建新的存档文件时

我有这个压缩文件夹。在将它发送给某人之前,我解压了该文件夹,然后使用我的计算机编辑并删除了其中的一些文件。然后修改后,我再次将其压缩并发送给某人。他们还能恢复编辑和删除的文件吗?

如果您重新创建一个档案,如示例中所示,那么新档案将不包含已删除的文件;也不会包含现有文件的旧版本。


修改存档文件时

创建新存档文件的示例与标题略有不同:

如果我从 zip 文件中删除某些内容,还能恢复吗?

如果你删除了某些内容直接从 zip 文件,则可能或不可能恢复。

ZIP 格式允许仅通过更新档案末尾的中央目录来删除条目,而无需重建档案的其余部分。同样,可以附加某个现有文件的新版本,而无需触及旧数据。

维基百科(重点是我的):

由于 ZIP 文件可能被附加到其他文件,因此只有文件末尾中央目录中指定的文件才有效。扫描 ZIP 文件中的本地文件头是无效的(除非存档已损坏),因为中央目录可能宣布一些文件已被删除,其他文件已被更新。

例如,我们可以从一个包含文件 A、B 和 C 的 ZIP 文件开始。然后删除文件 B 并更新文件 C。这可以通过将新文件 C 附加到原始 ZIP 文件的末尾并添加仅列出文件 A 和新文件 C 的新中心目录来实现。当 ZIP 最初设计时,通过软盘传输文件很常见,但写入磁盘非常耗时。如果您有一个很大的 zip 文件,可能跨多个磁盘,并且只需要更新几个文件,而不是读取和重写所有文件,那么只需读取旧的中央目录、附加新文件,然后附加更新的中央目录,速度会快得多。

[…]

正确读取 ZIP 档案的工具必须扫描中央目录记录签名的末尾,然后根据需要扫描其他指定的中央目录记录。它们不得从 ZIP 文件的顶部扫描条目,因为(如本节前面所述)只有中央目录指定文件块的开始位置并且它尚未被删除。扫描可能会导致误报,因为该格式不禁止其他数据位于块之间,也不禁止文件数据流包含此类签名。但是,尝试从损坏的 ZIP 存档中恢复数据的工具很可能会扫描存档以查找本地文件头签名;[…]

从 zip 文件中删除条目的工具可以:

  • 仅更新中央目录;然后“删除”的数据仍在档案中,可以恢复
  • 或者更新中央目录,并故意用零、垃圾或其他东西覆盖相关片段,仍然不重写档案的后续部分;那么被覆盖的数据就无法恢复
  • 或者真正删除相关片段并重建(重写)后续所有内容;然后删除的数据无法恢复

此处“恢复”的意思是“仅从存档文件中恢复”,而不是“从文件系统/磁盘/内存/缓存/… 中恢复”。您似乎担心将存档文件发送给的人是否可以恢复任何内容。如果您将存档发送给无法访问您计算机的人,则从存档文件中恢复任何内容的能力(如果有)你的文件系统/磁盘/内存/缓存/......无关紧要,因为这是你的能力,而不是他们的。

答案2

这取决于。

当您从 ZIP 中删除数据时,数据(很可能)会从存档中物理删除(在极少数情况下,数据会保留在那里)。然后您的 zip 文件将被新版本替换。

不同之处在于不同的操作系统或文件系统如何处理文件被覆盖的情况。有些系统可能会将数据写入驱动器上的一个全新位置 - 在这种情况下,它可能通过使用恢复软件分析整个驱动器,可以恢复数据。如果新版本“直接写入相同扇区”,则您的数据可能会丢失。

还值得检查文件历史记录(如果已启用)和各种在线驱动器 - 它们通常会将文件的先前版本保留一段时间。

相关内容