澄清zip /存档文件的工作原理

时间:2016-12-06 21:50:08

标签: c# file

由于这个问题被搁置,并要求将其缩小一点,我的问题归结为:

我可以将文本文件添加到存档文件的最基本方法是什么?我想从他们的收件箱中为我的用户从他们的Gmail帐户下载txt格式的电子邮件(我有一个服务帐户设置和一个自行开发的程序,允许我访问他们的驱动器),但是当涉及到电子邮件时,我不想要使用他们拥有的每封电子邮件将他们本地保存的目录垃我宁愿以文本格式保存每封电子邮件,并将其传输到存档文件中,并能够从我的程序中引用该存档文件。

我理解二进制编写器/阅读器类型,是我在使用C#时要去的路线? C#中还有其他/更好的选择可能更有效吗?

2 个答案:

答案 0 :(得分:3)

存档文件中没有魔力。它们只是具有(可选)索引的文件,该索引将文件映射到主文件中的偏移量。 Zip不是只是存档 - 它主要是压缩文件格式,也是存档。它的文件格式与其他文件一样,真的。

简单格式可以是这样的:

(editImage.target || editImage.srcElement)

那就是:)

答案 1 :(得分:2)

我本身并不是算法方面的专家,但总体思路是在文件中找到通常重复的模式并将其编入索引。所以,如果你使用" boondoggle"在你的文件中有很多,算法将创建一个表,放置" boondoggle"在其中并用表中的索引替换它的用法。如果索引只有几个字节,那么您已经大大减小了文件的大小。 ZIP使用的基本算法称为DEFLATE。您可以谷歌搜索更多信息。

编辑:我将指出存档(严格来说)与压缩文件不同。 unix TAR文件是一个存档,它只是将所有内容连接成一个文件。这没有压缩。这就是压缩算法与TAR(tar.gz,tar.bz等)相结合以获得两者的原因。 ZIP同时进行归档和压缩。