فك ضغط أرشيف 7ZIP مع ملفات ودلائل متعددة في Java [مغلق

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

  •  28-09-2019
  •  | 
  •  

سؤال

أريد إلغاء ضغط أرشيف 7ZIP/LZMA مع ملفات ودلائل متعددة في Java. حاولت استخدام 7Zip SDK الرسمي ، لكنني فشلت ، لأن مهارات البرمجة الخاصة بي ليست متقدمة لهذا الموضوع. ومع ذلك ، فأنا أقوم ببعض المكتبات التي تجعل الدعم في Java أسهل ، متحدثًا عن LzMaOutputStream/LZMainputStream - ومع ذلك لا أعرف كيفية استخدام هذه "التدفقات" لإزالة ضغط أرشيف متعدد الأشرار. انا عالق.

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

المحلول

في المثال ، استبدل compressed مع ملف جديد ("path_to_file"). سوف ينتج عن رمز المثال دفق إخراج ، أفترض أن lzMaOutputStream أو المكتبة لديها طرق مناسبة لتحويل الدفق إلى ثنائي أو سلسلة.

بشكل افتراضي ، يعد LZMA خوارزمية ضغط فقط ، وليس أرشيف ملف مثل TAR أو ZIP. (ملاحظة: برنامج 7-ZIP هو أرشيف ملف ، لكن المكتبة التي ربطتها لا تدعم عبور الملفات والتفريغ.

أود أن أقترح استخدام خوارزمية ضغط جيدة الجودة مثل ZIP أو GZ. إذا كان يجب عليك استخدام LZMA ، فيمكنك استخدام TAR لإنشاء أرشيف ملف ثم ضغطه باستخدام LZMA. أو استخدام الرمز البريدي مع ضغط الصفر.

هنا مكتبة جافا تار.

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