
عند التعامل مع أرشيفات ZIP، قد تواجه حالة تحتوي فيها ملف ZIP على ملفات ZIP أخرى، مما يؤدي إلى هيكل متداخل. إذا كان هدفك هو تبسيط هذا عن طريق استخراج جميع أرشيفات ZIP الداخلية إلى الأرشيف الخارجي، فأنت في المكان الصحيح. في هذه المقالة، سنستكشف كيفية إنشاء أرشيف ZIP مسطح في C# باستخدام Aspose.ZIP لـ .NET.
جدول المحتويات
- نظرة عامة على واجهة برمجة التطبيقات الخاصة بـ .NET لإنشاء أرشيفات ZIP مسطحة
- خطوات إنشاء أرشيف ZIP مسطح
- احصل على ترخيص API مجاني
- الخاتمة
- انظر أيضًا
نظرة عامة على واجهة برمجة التطبيقات الخاصة بـ .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#:
- تحميل أرشيف ZIP الأب: استخدم فئة Archive لتحميل أرشيف ZIP الأب.
- تهيئة القوائم: أنشئ قوائم لتخزين:
- الإدخالات التي سيتم حذفها من أرشيف ZIP الأب
- الإدخالات المستخرجة وأسمائها
- التكرار عبر إدخالات الأرشيف: قم بالتكرار عبر كل ArchiveEntry في أرشيف ZIP الأب باستخدام مجموعة Archive.Entries.
- معالجة كل إدخال:
- تحقق مما إذا كان الإدخال هو أرشيف ZIP باستخدام
ArchiveEntry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase)
. - إذا كان كذلك، أضفه إلى قائمة الإدخالات التي سيتم حذفها.
- افتح الإدخال في كائن MemoryStream باستخدام
ArchiveEntry.Open().CopyTo(MemoryStream)
. - قم بالتكرار عبر إدخالات أرشيف ZIP الداخلي، وأدِّ ما يلي:
- أضف اسم كل إدخال إلى قائمة الإدخالات التي سيتم إضافتها.
- قم بتحميل كل إدخال في
MemoryStream
باستخدامArchiveEntry.Open().CopyTo(MemoryStream)
. - أضف الإدخال إلى قائمة الإدخالات التي سيتم إضافتها إلى أرشيف ZIP الأب.
- تحقق مما إذا كان الإدخال هو أرشيف ZIP باستخدام
- حذف إدخالات ZIP الداخلية: قم بالتكرار عبر قائمة أرشيفات ZIP الداخلية واحذف كل إدخال باستخدام الطريقة Archive.DeleteEntry(ArchiveEntry).
- إضافة إدخالات جديدة إلى أرشيف ZIP الأب: قم بالتكرار عبر قائمة الإدخالات التي سيتم إضافتها وأدرج كل إدخال باستخدام الطريقة Archive.CreateEntry(String, Stream).
- حفظ أرشيف ZIP الأب: أخيرًا، احفظ أرشيف ZIP الأب المعدل باستخدام الطريقة Archive.Save(String).
إليك نموذج كود يوضح كيفية إنشاء أرشيف ZIP مسطح في C#:
احصل على ترخيص API مجاني
يمكنك الحصول على ترخيص مؤقت مجاني لاستخدام Aspose.ZIP لـ .NET دون أي قيود تقييم.
الخاتمة
في هذا الدليل، تعلمت كيفية إنشاء أرشيف ZIP مسطح بكفاءة باستخدام C#. لقد أوضحنا عملية استخراج أرشيفات ZIP الداخلية إلى أرشيف ZIP الأب، مما يتيح لك تجنب المجلدات المتداخلة. لمزيد من المعلومات، لا تتردد في الاطلاع على وثائق Aspose.ZIP لـ .NET، أو تواصل معنا عبر المنتدى.
انظر أيضًا
- إضافة ملفات أو مجلدات إلى أرشيفات ZIP في C#
- فك ضغط الملفات في أرشيفات ZIP باستخدام C#
- دمج عدة أرشيفات ZIP أو TAR في C#
- إنشاء أرشيف ذاتي الاستخراج قابل للتنفيذ في C#
من خلال اتباع هذه الخطوات، يمكنك بسهولة تنفيذ ضغط ملف ZIP مسطح في C# في تطبيقاتك، مما يضمن أرشيف ZIP بملف واحد يكون فعالاً وسهل الإدارة.