Я использую rubyzip для Windows, чтобы заархивировать каталог.
Когда я распаковываю архив, некоторые файлы меньше, чем были.
Зиппинг должен быть операцией без потерь, поэтому мне интересно, почему это происходит.
Вот код, который я использую:
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
Запуск того же кода под jruby на linux с теми же файлами работает, как и ожидалось - все файлы имеют одинаковый размер.
Есть идеи, почему это проблема с Windows?