Архивирование существующего файла с помощью Rubyzip - PullRequest
2 голосов
/ 29 сентября 2010

Я хотел бы использовать rubyzip для архивирования "zip" существующего файла:

C: \ textfile.txt

до

textfile.zip

Я знаю, как добавить поток в текстовый файл:

require 'zip/zip'

 Zip::ZipFile.open("mp.zip", Zip::ZipFile::CREATE) {
   |zipfile|
    zipfile.get_output_stream("text.txt") { |f| f.puts "Creating text file" }
    }

но не как добавить существующий файл в zip. Спасибо за вашу помощь

1 Ответ

1 голос
/ 29 сентября 2010

Это читает исходный файл и записывает его по 1 Мб за раз в zipfile.

Я уже некоторое время использую что-то очень похожее в производстве.

require 'zip/zip'

Zip::ZipFile.open("mp.zip", Zip::ZipFile::CREATE) do |zipfile|
    zipfile.get_output_stream("text.txt") do |out_file|
      File.open("text.txt") do |in_file|
        while blk = in_file.read(1024**2)
          out_file << blk
        end
      end
    end
end

Надеюсь, что это отвечает на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...