有没有办法可以编辑Zip文件头并修改其值?我有一个包含5个文件的.zip文件。我想编辑标题并修改内容。
我想在最后修改额外的字段(请从wiki中修改zip结构),
我可以修改任何语言的zip文件!感谢任何帮助。
答案 0 :(得分:0)
您无法使用java.util.zip包修改zip文件头。但是如果您知道zip头结构,则可以使用java.io.RandomAccessFile移动到必需字段并使用适当的方法(例如writeInt或writeShort)来更改其值。
答案 1 :(得分:0)
您需要为此推送自己的代码,但它应该相对简单。由于听起来需要在标题中插入额外的数据,因此您不能像其他答案中所建议的那样简单地写入现有的zip文件。阅读zip文件并写一个新文件。
首先查找并读取中心目录(结束目录指向它)。然后使用它来知道zip文件中本地和中央标题的位置。您需要这样做,因为在不解压缩数据的情况下,无法简单地按顺序读取某些zip文件。对于这个应用程序,浪费时间解压缩数据毫无意义。
然后使用中央目录中本地标题的位置顺序读取zip文件,将内容复制到新的zip文件,但通过更改额外字段长度的长度并插入额外数据来插入额外字段。跟踪本地标头的新偏移量。当您到达中央目录时,您需要更新本地标头的偏移量,并在那里再次插入额外的数据。最后,您需要将偏移更新到结束目录中的中心目录。