1

尝试使用 ruby​​zip 将注释添加到我根本不会修改的 zip 文件中。

zf = Zip::ZipFile.open 'Archive.zip'
zf.comment = "blah blah blah"

我试过了zf.closezf.commit但没有运气。我正在阅读文档,但似乎找不到解决方案。

以前有人做过吗?

4

2 回答 2

1

我使用以下代码成功尝试了它:

require 'zip/zipfilesystem'

zf = Zip::ZipFile.open 'Archive.zip', 'w'
zf.comment = "blah blah blah"

zf.get_output_stream("first.txt") { |f| f.puts "Hello from ZipFile" }
zf.close

我添加了至少一个文档来创建 zip 文件。没有内容,就没有 zip 文件(仅评论似乎不是内容)。

您不创建 zip,而是要修改 zip 文件。

这也有效,但它也改变了 zip 文件:

require 'zip/zipfilesystem'

zf = Zip::ZipFile.open 'Archive.zip'
zf.comment = "CHANGED COMMENT"
zf.get_output_stream("second.txt") { |f| f.puts "Hello from ZipFile" }

zf.close

基于此,您可以执行以下操作:

require 'zip/zipfilesystem'

zf = Zip::ZipFile.open 'Archive.zip'
zf.comment = "CHANGED COMMENT"
zf.get_output_stream("second.txt") { |f| f.puts "Hello from ZipFile" }
zf.commit #write the data and change the commen
zf.remove("second.txt")  #remove the data again - the comment changed

zf.close
于 2012-04-06T22:06:40.657 回答
1

升级到 RubyZip 0.9.7(今天发布),修复了这个错误。

于 2012-04-07T23:15:04.243 回答