rubyzip を使用して、他の方法ではまったく変更していない zip ファイルにコメントを追加しようとしています。
zf = Zip::ZipFile.open 'Archive.zip'
zf.comment = "blah blah blah"
私は試してみましたが、運がありませんでしたzf.close
。zf.commit
ドキュメントを読んでいますが、解決策が見つからないようです。
誰もこれを以前にやったことがありますか?
RubyZip 0.9.7 (本日リリース) にアップグレードすると、このバグが修正されます。
次のコードで成功しました:
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 ファイルを作成するために少なくとも 1 つのドキュメントを追加しました。コンテンツがなければ、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