我有一个文件夹,希望尽可能高效地无损压缩文件。
这些文件彼此非常相似,因为主要有效负载完全相同,但可变大小的页眉和页脚可能在文件之间有很大差异。
我需要能够非常快速地访问任何文件以及非常快速地添加其他文件(不必解压缩整个文件夹只是为了再次重新压缩文件)。从文件夹中删除并不常见。
算法建议很好,但我更愿意只使用一些现有的库/程序来完成这项任务。
答案 0 :(得分:3)
在这种情况下,由于您具有文件的特定知识,因此自定义解决方案最有效。仅存储静态主有效负载一次,然后分别存储页眉和页脚。例如,假设您有3个文件:
1.dat
2.dat
3.dat
将它们存储在压缩文件中:
payload.dat
1.header.dat
1.footer.dat
2.header.dat
2.footer.dat
3.header.dat
3.footer.dat
就添加文件而言,Zip和7zip支持将新文件添加到现有存档中,因此您可以使用其中任何一个,只需根据需要附加新文件。我个人会推荐7zip,因为我发现在大多数情况下它提供了更好的压缩率,但它根据确切的内容而变化很大。
答案 1 :(得分:1)
有时回来它是 7zip ,不确定是否有新内容。
答案 2 :(得分:0)
使用这种冗余数据,大多数标准压缩软件应该产生非常令人满意的结果。请勿使用标准的Windows .zip生成器,因为它会单独压缩每个文件。不过,7zip或Gzip对此非常有用。