Windowsでrubyzipを使用してディレクトリを圧縮しています。アーカイブを解凍すると、一部のファイルが以前よりも小さくなっています。
zipはロスレス操作である必要があるので、なぜこれが発生しているのか疑問に思います。
これが私が使用しているコードです:
require 'rubygems'
require 'find'
require 'zip/zip'
output = "c:/temp/test.zip"
zos = Zip::ZipOutputStream.new(output)
path = "C:/temp/profile"
::Find.find(path) do |file|
next if File.directory?(file)
entry = file.sub("#{path}/", '')
zos.put_next_entry(entry)
zos << File.read(file)
end
zos.close
問題が発生している特定のファイルは、Firefoxプロファイルからのものです。cert8.dbおよびkey3.db
同じファイルを使用してLinuxのjrubyで同じコードを実行すると、期待どおりに機能します。すべてのファイルは同じサイズです。
これがWindowsで問題になる理由はありますか?