
عند العمل مع ملفات ZIP، قد تواجه كثيرًا سيناريوهات حيث توجد عدة ZIP أرشيفات متداخلة داخل أرشيف ZIP رئيسي. للوصول إلى محتويات هذه الأرشيفات المتداخلة، ستحتاج أولاً إلى استخراج ZIP الرئيسي ثم التعامل مع كل أرشيف متداخل على حدة. في هذا الدرس، سنرشدك إلى كيفية استخراج أرشيفات ZIP المتداخلة بكفاءة في C# .NET دون الحاجة إلى كود معقد.
جدول المحتويات
استخدام API .NET لاستخراج الأرشيفات المتداخلة ZIP
لإجراء استخراج الأرشيفات المتداخلة ZIP، سنستخدم Aspose.ZIP for .NET المكتبة. هذه الواجهة البرمجية القوية مصممة خصيصًا لعمليات الأرشفة داخل تطبيقات .NET، مما يتيح لك إنشاء ومعالجة صيغ أرشيفية مختلفة بسهولة. يمكنك اختيار تحميل ملف DLL الخاص بالواجهة البرمجية أو تثبيته مباشرةً باستخدام NuGet بالأمر التالي:
PM> Install-Package Aspose.Zip
دليل خطوة بخطوة لفك ضغط الأرشيفات المتداخلة ZIP
للتوضيح، قمنا بإعداد ملف ZIP يحتوي على ثلاثة مدخلات، بما في ذلك أرشيفات ZIP المتداخلة.

Nested ZIP Archives
سنستخرج كل أرشيف ZIP متداخل ونحفظ محتوياته في مجلدات منفصلة. إليكم الخطوات لمعالجة ملفات ZIP المتداخلة في .NET:
- إنشاء FileStream: حمّل ملف ZIP الأصل باستخدام FileStream كائن.
- حمّل ملف ZIP: استخدم الأرشيف فئة لتحميل ملف ZIP.
- تجول عبر إدخالات الأرشيف: تكرار عبر كل ArchiveEntry في Archive.Entries المجموعة.
- تصفية الأرشيفات المتداخلة ZIP: حدد أرشيفات ZIP في المجموعة ولكل من هذه الأرشيفات، نفّذ ما يلي:
- إنشاء MemoryStream: إنشاء نسخة من MemoryStream ونسخ مدخل الأرشيف إليه باستخدام ArchiveEntry.Open().CopyTo(Stream) الطريقة.
- تحميل الأرشيف المتداخل: إنشاء كائن من Archive فئة لتحميل الأرشيف المتداخل من MemoryStream.
- استخراج إلى الدليل: أخيرًا، استخرج محتويات الأرشيف المتداخل إلى مجلد محدد باستخدام Archive.ExtractToDirectory(string) الطريقة.
إليك عينة من الشيفرة توضح كيفية فك ضغط الأرشيفات المتداخلة ZIP في C# .NET:
using Aspose.Zip;
// Open ZIP file in a file stream
using (FileStream zipFile = File.Open("Archives/nested-archive.zip", FileMode.Open))
{
// Load ZIP file using Archive class
using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
{
// Access each entry in ZIP archive
foreach(ArchiveEntry entry in archive.Entries)
{
if(entry.Name.ToLower().Contains(".zip"))
{
// Create memory stream for nested archive
MemoryStream nestedArchiveStream = new MemoryStream();
// Copy archive to memory stream
entry.Open().CopyTo(nestedArchiveStream);
// Load the nested archive from memory stream
using (var nestedArchive = new Archive(nestedArchiveStream))
{
// Extract archive to disk.
nestedArchive.ExtractToDirectory("Archives/Extracted/"+entry.Name);
}
}
}
}
}
توضح الصورة التالية المحتويات المستخرجة من الأرشيفات المتداخلة ZIP:

Unzipped Nested Archives
احصل على ترخيص API مجاني
يمكنك الحصول على رخصة مؤقتة مجانية لـ Aspose.ZIP لـ .NET، مما يتيح لك استخدام المكتبة دون أي قيود على التقييم.
الخلاصة
في هذه المقالة، تعلمت أفضل طريقة لـ فك ضغط ملفات ZIP المتداخلة في C#. يوضح الدليل خطوة بخطوة وعينة الشيفرة المقدمة كيفية التعامل بكفاءة مع أرشيفات ZIP المتداخلة باستخدام إطار عمل .NET. لاستكشاف المزيد من الميزات، لا تتردد في زيارة Aspose.ZIP documentation أو اطرح أسئلة على منتدانا المنتدى.
باتباع هذا دليل معالجة zip المتداخلة في C#,، ستحصل على الأدوات اللازمة لإدارة أرشيفات ZIP المتداخلة بفعالية في تطبيقات .NET الخاصة بك، سواء كنت تستخدم .NET 7 أو .NET Core. هذا الدليل هو مرجعك الأساسي لـ معالجة ملفات ZIP المتداخلة في C#,، مما يضمن أنك تستطيع استخراج الملفات من أرشيفات ZIP المتداخلة بسهولة ودقة. سواء كنت تبحث عن .استخراج ملفات zip المتداخلة .NET 6 أو .معالجة أرشيف zip المتداخل .NET Core, يغطي هذا الدرس كل شيء. بالإضافة إلى ذلك، الاستفادة من .مكتبة .NET 7z للتعامل القوي والموثوق مع الأرشيف ستعزز قدراتك في إدارة الملفات، مما يجعلها أداة أساسية للمطورين الذين يعملون مع احتياجات الأرشفة المعقدة.
مع هذه الرؤى، يمكنك بثقة مواجهة تحديات فك ضغط أرشيفات zip المتداخلة في C# و تحسين تطبيقاتك لـ .إطار .NET لفك ضغط zip المتداخل مع بنية المجلد و C# فك ضغط ملفات zip المتداخلة مع الحفاظ على بنية المجلد.