سؤال

في طلبي ، يحدد المستخدم ملفًا كبيرًا (> 100 ميغابايت) على محرك الأقراص. أتمنى أن يأخذ البرنامج الملف الذي تم اختياره و قم بقطعها في أجزاء مؤرشفة التي هي 100 ميغابايت أو أقل. كيف يمكن القيام بذلك؟ ماذا او ما المكتبات وملف صيغة هل ينبغي أن أستخدم؟ هل يمكن أن تعطيني بعض الكود؟ بعد إنشاء الجزء الأول من 100 ميجابايت المؤرشفة ، سأقوم بتحميله على خادم ، ثم سأقوم بتحميل الجزء 100 ميغابايت التالي ، وهكذا حتى يتم الانتهاء من التحميل. بعد ذلك ، من جهاز كمبيوتر آخر ، سأقوم بتنزيل كل هذه الأجزاء المؤرشفة ، ثم أتمنى ذلك قم بتوصيلهم بالملف الأصلي. هل هذا ممكن مع مكتبات 7ZIP ، على سبيل المثال؟ شكرًا!

تحديث: من الإجابة الأولى ، أعتقد أنني سأستخدم SevenZipSharp ، وأعتقد أنني أفهم الآن كيفية تقسيم ملف إلى أجزاء مؤرشفة 100 ميجابايت ، لكن لا يزال لدي سؤالان:

  1. هل من الممكن إنشاء أول جزء أرشفة 100 ميجابايت وتحميله قبل إنشاء الجزء 100 ميغابايت التالي؟
  2. كيف يمكنك استخراج ملف مع SevenZipSharp من الأرشيفات المقسمة المتعددة؟

تحديث رقم 2: كنت ألعب فقط مع واجهة المستخدم الرسومية 7-ZIP وإنشاء محفوظات متعددة الحجم/الانقسام ، ووجدت أن اختيار الأول والاستخراج منه سوف يستخرج الملف بأكمله من جميع المحفوظات المقسمة. هذا يقودني إلى الاعتقاد بأن المسارات إلى الأجزاء اللاحقة مدرجة في أولها (أم أنها متتالية؟). ومع ذلك ، لست متأكدًا مما إذا كان هذا سيعمل مباشرة من وحدة التحكم ، لكنني سأحاول ذلك الآن ، ومعرفة ما إذا كان يحل السؤال رقم 2 من التحديث الأول.

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

المحلول

ألق نظرة على Sevenzipsharp, ، يمكنك استخدام هذا لإنشاء ملفات Spit 7Z الخاصة بك ، والقيام بكل ما تريد تحميلها ، ثم استخراجها على جانب الخادم.

لتقسيم أرشيف نظرة على SevenZipCompressor.CustomParameters عضو ، يمر في "v100m". (يمكنك العثور على المزيد من المعلمات في ملف 7-zip.chm من 7zip)

نصائح أخرى

يمكنك تقسيم البيانات إلى "حزم" 100 ميغابايت أولاً ، ثم تمرير كل حزمة إلى الضاغط بدورها ، متظاهرًا بأنها مجرد ملفات منفصلة.

ومع ذلك ، فإن هذا النوع من الضغط عادة ما يعتمد على التيار. طالما أن المكتبة التي تستخدمها ستفعل I/O عبر فئة مشتقة من الدفق ، سيكون من السهل جدًا تنفيذ دفقك الخاص الذي "حزم" البيانات بأي طريقة تريدها أثناء الطيران - حيث يتم تمرير البيانات إلى طريقة الكتابة () التي تكتبها إلى ملف. عندما تتجاوز 100 ميغابايت في هذا الملف ، يمكنك ببساطة إغلاق هذا الملف وفتح ملف جديد ، وتواصل الكتابة.

يتيح لك أي من هذه الأساليب تحميل "حزمة" واحدة بسهولة مع الاستمرار في ضغط التالي.

تعديل

فقط لكي تكون واضحًا - يعد إزالة الضغط مجرد التسلسل العكسي لما ورد أعلاه ، لذلك بمجرد أن تحصل على رمز الضغط ، سيكون الضغط سهلاً.

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