1

rubyzip を使用して、他の方法ではまったく変更していない zip ファイルにコメントを追加しようとしています。

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

私は試してみましたが、運がありませんでしたzf.closezf.commitドキュメントを読んでいますが、解決策が見つからないようです。

誰もこれを以前にやったことがありますか?

4

2 に答える 2

1

RubyZip 0.9.7 (本日リリース) にアップグレードすると、このバグが修正されます。

于 2012-04-07T23:15:04.243 に答える
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 ファイルを作成するために少なくとも 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
于 2012-04-06T22:06:40.657 に答える