c# - 如何在 zip 存档中找到某些文件的压缩位以进行进一步处理?

标签 c# c compression zlib

上下文: 为了节省更多空间,我想使用一种算法进一步压缩 zip 存档中的一些文件,并使用另一种算法进一步压缩同一存档中的其他文件。稍后我需要恢复该过程以获取原始 zip 存档,因为 zip 文件归用户所有。

如何在 zip 存档中找到某些文件的压缩位以进行进一步处理?

语言:估计这种代码为了性能一般都是C/C++,不过C#也不错。

操作系统:Windows Server 2012 R2 或更高版本。

编辑: 我了解到,在 zip(zlib) 格式中,压缩文件是按 block 组织的。我们应该能够通过搜索标题来找到文件。仍在检查如何编码。

最佳答案

zip 文件格式已完整记录。例如http://www.fileformat.info/format/zip/corion.htm 您可以轻松找到其他来源和描述。

您要做的就是根据格式读取字节,并且您确切地知道某个文件的压缩位在哪里。您可以为此找到开源库,也可以使用您喜欢的语言推出自己的库。

顺便说一句,将其他压缩文件压缩到 zip 存档中可能不值得。

关于c# - 如何在 zip 存档中找到某些文件的压缩位以进行进一步处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50731938/

相关文章:

linux - Gzip 文件仅在终端中的某些字节以上

c# - 当您等待同步方法时会发生什么

c# - Application.Restart 不传回参数

c# - 如何向当前服务器请求资源(相对路径)?

尽管有返回值,但控制仍到达非 void 末尾

sql-server - SQL Server 2008 页面/行压缩思路

c# - 空合并运算符的错误使用?

c - 什么时候使用 const void*?

c中的char指针导致段错误

algorithm - WAN 优化中使用的技术/算法