尝试使用 rubyzip 将注释添加到我根本不会修改的 zip 文件中。
zf = Zip::ZipFile.open 'Archive.zip'
zf.comment = "blah blah blah"
我试过了zf.close
,zf.commit
但没有运气。我正在阅读文档,但似乎找不到解决方案。
以前有人做过吗?
我使用以下代码成功尝试了它:
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
升级到 RubyZip 0.9.7(今天发布),修复了这个错误。