اضبط مستوى الضغط عند إنشاء ملف مضغوط باستخدام Rubyzip

StackOverflow https://stackoverflow.com/questions/2471407

  •  20-09-2019
  •  | 
  •  

سؤال

لديّ برنامج روبي يزيل شجرة دليل ملفات XML باستخدام روبيزيب جوهرة. مشكلتي هي أن الملف بدأ ثقيلًا وأرغب في زيادة مستوى الضغط ، لأن وقت الضغط ليس مشكلة.

لم أتمكن من العثور في توثيق Rubyzip طريقة لتحديد مستوى الضغط لملف zip الذي تم إنشاؤه.

أي شخص يعرف كيفية تغيير هذا الإعداد؟ هل هناك مكتبة روبي أخرى تسمح بتحديد مستوى الضغط؟

هل كانت مفيدة؟

المحلول

هنا هو الكود الذي أنشأته من خلال النظر في Rubyzip Internal.

level = Zlib::BEST_COMPRESSION
Zip::ZipOutputStream.open(zip_file) do |zip|
    Dir.glob("**/*") do |filename|
        entry = Zip::ZipEntry.new("", filename)
        entry.gather_fileinfo_from_srcpath(filename)
        zip.put_next_entry(entry, nil, nil, Zip::ZipEntry::DEFLATED, level)
        entry.get_input_stream { |is| IOExtras.copy_stream(zip, is) }
    end
end

نصائح أخرى

من المحتمل أن تحصل على جر أفضل عن طريق الاتصال ببرنامج "الرمز البريدي" أو ما لا يمكنك القيام به.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top