إنشاء أرشيف ZIP مسطح في C#

عند العمل مع أرشيفات ZIP، قد تواجه سيناريو يحتوي فيه ملف ZIP على ملفات ZIP أخرى، مما يخلق هيكلًا متداخلًا. إذا كنت تريد تبسيط هذا من خلال استخراج جميع أرشيفات ZIP الداخلية إلى الأرشيف الخارجي، فأنت في المكان الصحيح. في هذا المقال، سوف نستكشف كيفية إنشاء أرشيف ZIP مسطح في C# باستخدام Aspose.ZIP لـ .NET.

جدول المحتويات

نظرة عامة على واجهة برمجة التطبيقات .NET لإنشاء أرشيفات ZIP مسطحة

لإنشاء أرشيفات ZIP مسطحة، سنستخدم مكتبة Aspose.ZIP لـ .NET. تتيح لك واجهة برمجة التطبيقات القوية هذه إنشاء واستخراج تنسيقات أرشيفات متنوعة، بما في ذلك ZIP وTAR وGZip و7z. يمكنك بسهولة تثبيت هذه المكتبة من NuGet أو تنزيل ملف DLL الخاص بها من قسم التنزيلات.

PM> Install-Package Aspose.Zip

خطوات إنشاء أرشيف ZIP مسطح في C#

لفهم هيكل أرشيف ZIP مسطح بشكل أفضل، اعتبر المثال التالي. في البداية، لدينا أرشيف ZIP يحتوي على أرشيف ZIP آخر:

parent.zip
 ├ first.txt
 ├ inner.zip
 │ ├ game.exe
 │ └ subitem.bin
 └ picture.gif

بعد تحويل هذا الأرشيف ZIP إلى هيكل مسطح، سيتم استخراج جميع الإدخالات من ZIP الداخلي إلى ZIP الأب، مما يؤدي إلى الهيكل التالي:

flatten.zip
 ├ first.txt
 ├ picture.gif
 ├ game.exe
 └ subitem.bin

خطوات التنفيذ

إليك كيفية إنشاء أرشيف ZIP مسطح برمجيًا في C#:

  1. تحميل أرشيف ZIP الأب: استخدم فئة Archive لتحميل ZIP الأب.
  2. تهيئة القوائم: أنشئ قوائم لتخزين:
    • الإدخالات التي سيتم حذفها من ZIP الأب
    • الإدخالات المستخرجة وأسمائها
  3. التكرار عبر إدخالات الأرشيف: قم بالتكرار عبر كل ArchiveEntry في ZIP الأب باستخدام مجموعة Archive.Entries.
  4. معالجة كل إدخال:
    • تحقق مما إذا كان الإدخال هو أرشيف ZIP باستخدام ArchiveEntry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase).
    • إذا كان كذلك، أضفه إلى قائمة الإدخالات التي سيتم حذفها.
    • افتح الإدخال في كائن MemoryStream باستخدام ArchiveEntry.Open().CopyTo(MemoryStream).
    • تكرار عبر إدخالات أرشيف ZIP الداخلي، مع القيام بما يلي:
      • إضافة اسم كل إدخال إلى قائمة الإدخالات التي سيتم إضافتها.
      • تحميل كل إدخال في MemoryStream باستخدام ArchiveEntry.Open().CopyTo(MemoryStream).
      • إضافة الإدخال إلى قائمة الإدخالات التي سيتم إضافتها إلى ZIP الأب.
  5. حذف إدخالات ZIP الداخلية: قم بالتكرار عبر قائمة أرشيفات ZIP الداخلية واحذف كل إدخال باستخدام طريقة Archive.DeleteEntry(ArchiveEntry).
  6. إضافة إدخالات جديدة إلى ZIP الأب: قم بالتكرار عبر قائمة الإدخالات لإضافتها وشمل كل إدخال باستخدام طريقة Archive.CreateEntry(String, Stream).
  7. حفظ أرشيف ZIP الأب: أخيرًا، احفظ أرشيف ZIP الأب المعدل باستخدام طريقة Archive.Save(String).

إليك نموذج كود يوضح كيفية إنشاء أرشيف ZIP مسطح في C#:

احصل على ترخيص API مجاني

يمكنك الحصول على ترخيص مؤقت مجاني لاستخدام Aspose.ZIP لـ .NET بدون أي قيود على التقييم.

الخاتمة

في هذا البرنامج التعليمي، تعلمت كيفية إنشاء أرشيف ZIP مسطح بكفاءة باستخدام C#. لقد أوضحنا عملية استخراج أرشيفات ZIP الداخلية إلى ZIP الأب، مما يتيح تجنب المجلدات المتداخلة بشكل فعال. لمزيد من المعلومات، لا تتردد في الاطلاع على وثائق Aspose.ZIP لـ .NET، أو تواصل معنا عبر المنتدى.

انظر أيضًا