具有任意文件操作的压缩容器格式



是否有成熟的压缩格式,允许对其中的项进行任意文件操作,如删除/插入/更新,但不需要为此重新创建完整的存档。

我知道基于Sqlite文件格式的Sqlar自然支持这一点,因为上面提到的操作只是删除/插入/更新包含Blob的记录。但它更像是一个考虑到其他目标而创建的实验项目,并没有被广泛采用

更新:更准确地说,这更像是档案中的文件系统,当插入的文件可能占用不同的";扇区";在这个容器中,这取决于以前的删除和更新操作的场景。但是;链";的文件在添加时被压缩,因此与原始文件相比占用的空间实际上更少。

.zip格式。您可能需要复制zip文件内容来进行删除,但不需要重新创建存档。

更新:

原则上,.zip格式可以支持在不复制整个zip文件的情况下删除和添加条目,以及重用已删除条目中的空间。最后的中心目录可以进行更新和廉价的重写。我听说有人在做这件事。您将不得不处理碎片,就像处理任何文件系统一样。我不知道有哪个开源库支持使用zip文件作为文件系统。.zip格式不支持像文件系统那样将条目分割成可能分散在zip文件中的扇区。zip文件中必须有一个连续的条目。

最新更新