اضبط مستوى الضغط عند إنشاء ملف مضغوط باستخدام Rubyzip
-
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
نصائح أخرى
من المحتمل أن تحصل على جر أفضل عن طريق الاتصال ببرنامج "الرمز البريدي" أو ما لا يمكنك القيام به.
لا تنتمي إلى StackOverflow