مقدمة
ملفات ZIP ضرورية لتنظيم البيانات وضغطها، ولكن كيف يمكنك تعديل محتوياتها برمجيًا؟ يكمن الحل في Aspose.Zip لـ .NET، وهي مكتبة قوية تُبسط التعامل مع ملفات ZIP باستخدام لغة C#. في هذا البرنامج التعليمي، سنرشدك خطوة بخطوة خلال استخراج وحذف وإضافة مدخلات إلى ملفات ZIP.
المتطلبات الأساسية
قبل أن نبدأ، تأكد من أن لديك ما يلي:
-
مكتبة Aspose.Zip لـ .NET: ثبّت المكتبة في مشروعك. يمكنك تنزيلها. هنا.
-
دليل المستندات: أنشئ دليلاً لتخزين ملفات zip. استبدل
"Your Document Directory"
في الكود مع المسار الفعلي الخاص بك.
استيراد مساحات الأسماء الضرورية
ابدأ باستيراد المساحات المطلوبة:
using Aspose.Zip;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
الخطوة 1: افتح ملف ZIP الخارجي
ابدأ بفتح ملف zip الرئيسي (zip الخارجي):
string dataDir = "Your Data Directory";
using (Archive outer = new Archive(dataDir + "outer.zip"))
{
// انتقل إلى تحديد إدخالات الرمز البريدي الداخلية
}
الخطوة 2: تحديد إدخالات الرمز البريدي الداخلية
بعد ذلك، قم بتحديد أي ملفات مضغوطة داخلية والاستعداد لحذفها:
List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();
List<string> namesToInsert = new List<string>();
List<MemoryStream> contentToInsert = new List<MemoryStream>();
foreach (ArchiveEntry entry in outer.Entries)
{
if (entry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase))
{
entriesToDelete.Add(entry);
using (MemoryStream innerCompressed = new MemoryStream())
{
entry.Open().CopyTo(innerCompressed);
// استخراج الإدخالات الداخلية
using (Archive inner = new Archive(innerCompressed))
{
foreach (ArchiveEntry ie in inner.Entries)
{
namesToInsert.Add(ie.Name);
MemoryStream content = new MemoryStream();
ie.Open().CopyTo(content);
contentToInsert.Add(content);
}
}
}
}
}
الخطوة 3: حذف إدخالات الأرشيف الداخلي
بمجرد جمع الإدخالات التي تحتاجها، احذف إدخالات zip الداخلية:
foreach (ArchiveEntry e in entriesToDelete)
{
outer.DeleteEntry(e);
}
الخطوة 4: إضافة الإدخالات المعدلة إلى ملف Zip الخارجي
الآن، يمكنك إضافة الإدخالات المستخرجة حديثًا مرة أخرى إلى ملف zip الخارجي الخاص بك:
for (int i = 0; i < namesToInsert.Count; i++)
{
outer.CreateEntry(namesToInsert[i], contentToInsert[i]);
}
الخطوة 5: حفظ ملف ZIP المعدل
وأخيرًا، احفظ التغييرات في ملف مضغوط جديد:
outer.Save(dataDir + "flatten.zip");
خاتمة
يوفر Aspose.Zip لـ .NET طريقة فعّالة وبسيطة للتعامل مع ملفات zip برمجيًا. غطّى هذا البرنامج التعليمي استخراج الملفات المضغوطة وحذفها وإضافة مدخلات إليها، موضحًا تنوع استخدامات المكتبة. استكشف سيناريوهات مختلفة، وطوّر مهاراتك في التعامل مع الملفات!
الأسئلة الشائعة
هل يمكنني استخدام Aspose.Zip لـ .NET مع لغات برمجة أخرى؟
تم تصميم Aspose.Zip في المقام الأول لتطبيقات .NET، ولكن Aspose تقدم مكتبات مماثلة لمختلف لغات البرمجة.
هل هناك نسخة تجريبية مجانية متاحة لـ Aspose.Zip لـ .NET؟
نعم، تتوفر نسخة تجريبية مجانية للتنزيل هنا.
كيف أحصل على الدعم لـ Aspose.Zip لـ .NET؟
قم بزيارة منتدى Aspose.Zip للدعم والمناقشات.
هل يمكنني شراء ترخيص مؤقت لـ Aspose.Zip لـ .NET؟
نعم يمكنك الحصول على ترخيص مؤقت هنا.
أين يمكنني العثور على الوثائق الخاصة بـ Aspose.Zip لـ .NET؟
الوثائق الكاملة متاحة هنا.