إنشاء أرشيف 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، أو تواصل معنا عبر المنتدى.

انظر أيضًا

من خلال اتباع هذه الخطوات، يمكنك بسهولة تنفيذ ضغط ملف ZIP مسطح في C# في تطبيقاتك، مما يضمن أرشيف ZIP بملف واحد يكون فعالاً وسهل الإدارة.