rubyzipを使ってZipファイルにコメントを追加しようとしました。rubyzipでzipコメントを保存する
zf = Zip::ZipFile.open 'Archive.zip'
zf.comment = "blah blah blah"
ノー運とzf.close
とzf.commit
を試してみました。私はドキュメントを読んでいるが、解決策を見つけることができない。
これまでに誰でもこれを行ったことはありますか?
rubyzipを使ってZipファイルにコメントを追加しようとしました。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'
zf.comment = "CHANGED COMMENT"
zf.get_output_stream("second.txt") { |f| f.puts "Hello from ZipFile" }
zf.close
を、あなたは次のことを行うことができます)、これはこのバグを修正します。
ファンタスティック、a ... ahem ... gemのような作品!ありがとう – Jakanapes
私は次のコードで成功し、それを試してみました:私は、zipファイルを作成するには、少なくとも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ファイルに変更:本日発売RubyZip 0.9.7(へ
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
私がしたいことはまったく正確ではありませんが、それは動作します。宝石が更新されるまで、私はいつもコメントを追加したり削除してコメントを更新することができます。ありがとう! – Jakanapes
Rubyzipは、zipファイルの実際の内容が変更された場合にのみコメントを更新するので、唯一の回避策は以下の@ knutの回答です。私はちょうどこのバグを修正し、GitHubでプルリクエストを送信しました:https://github.com/aussiegeek/rubyzip/pull/41 –