أثناء العمل مع الأرشيفات من داخل تطبيقات .NET ، قد تحتاج إلى دمج عدة ملفات ZIP أو TAR. على سبيل المثال ، قد ترغب في استخراج الملفات والمجلدات من أرشيفات متعددة ووضعها في أرشيف واحد. لتحقيق ذلك ، تتناول هذه المقالة كيفية دمج ملفات ZIP أو TAR متعددة في C#. سنغطي دمج ZIP في ZIP و TAR في TAR و ZIP في TAR و TAR في ZIP.
- C# API لدمج ملفات ZIP و TAR
- دمج ملفات ZIP متعددة في C#
- دمج ملفات TAR متعددة في C#
- الجمع بين ZIP و TAR في C#
- الجمع بين TAR و ZIP في C#
C# .NET API لدمج ملفات ZIP و TAR
لدمج أرشيفات ZIP و TAR متعددة ، سنستفيد من Aspose.ZIP for .NET. إنها واجهة برمجة تطبيقات .NET غنية بالميزات تتيح لك إنشاء العديد من تنسيقات الأرشيف الشائعة ومعالجتها. يمكنك إما تنزيل DLL الخاص بواجهة برمجة التطبيقات أو تثبيته مباشرة باستخدام NuGet.
PM> Install-Package Aspose.Zip
دمج ملفات ZIP متعددة في C#
لنبدأ رحلتنا لدمج الأرشيفات بتنسيق ZIP. سنأخذ أرشيفين من نوع ZIP ونجمع إدخالاتهما في ملف ZIP واحد. فيما يلي خطوات دمج ملفات ZIP متعددة في C#.
- قم بتحميل أول ملف مضغوط باستخدام فئة الأرشيف.
- وبالمثل ، قم بتحميل ملف ZIP الثاني باستخدام فئة الأرشيف.
- الآن ، قم بالتكرار خلال إدخالات أول ملف ZIP باستخدام مجموعة Archive.Entries.
- انسخ كل ArchiveEntry إلى كائن MemoryStream باستخدام طريقة ArchiveEntry.Open().CopyTo (MemoryStream).
- أضف إدخالاً إلى الرمز البريدي الثاني باستخدام طريقة Archive.CreateEntry (سلسلة ، MemoryStream).
- احفظ ملف ZIP المدمج كملف منفصل باستخدام طريقة Archive.Save(string).
يُظهر نموذج التعليمات البرمجية التالي كيفية دمج ملفين من نوع ZIP في C#.
// قم بتحميل أرشيف ZIP المصدر
using (Archive sourceArchive = new Archive("Archives/SourceArchive.zip"))
{
// قم بتحميل أرشيف الوجهة بتنسيق ZIP
using (Archive destArchive = new Archive("Archives/DestinationArchive.zip"))
{
// كرر على الإدخالات
foreach (ArchiveEntry entry in sourceArchive.Entries)
{
// الشيك هو إدخال ليس دليلا. يتم تخطي الإدخالات التي هي عبارة عن أدلة ، ولكن تتم إضافة ملفاتها مع مراعاة المسارات النسبية.
if (!entry.IsDirectory)
{
// تحميل الدخول إلى دفق الذاكرة
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// إضافة إدخال إلى الوجهة ZIP
destArchive.CreateEntry(entry.Name, mem);
}
}
// حفظ الأرشيف المدمج بشكل منفصل
destArchive.Save("Archives/merged-archive.zip");
}
}
دمج ملفات TAR متعددة في C#
دعنا الآن نتحقق من كيفية دمج أرشيفات TAR متعددة في C#. فيما يلي الخطوات لتحقيق ذلك.
- قم بتحميل أول ملف TAR باستخدام فئة TarArchive.
- وبالمثل ، قم بتحميل ملف TAR الثاني باستخدام فئة TarArchive.
- الآن ، قم بالتكرار خلال إدخالات أول تقرير TAR باستخدام مجموعة TarArchive.Entries.
- انسخ كل TarEntry إلى كائن MemoryStream باستخدام أسلوب TarEntry.Open().CopyTo (MemoryStream).
- أضف إدخالًا إلى تقرير التقييم الثالث باستخدام طريقة TarArchive.CreateEntry (سلسلة ، MemoryStream).
- احفظ TAR المدمج باستخدام طريقة TarArchive.Save(string).
يُظهر نموذج التعليمات البرمجية التالي كيفية دمج ملفات TAR متعددة في C#.
// قم بتحميل مصدر أرشيف تقرير التقييم الثالث
using (TarArchive sourceArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// تحميل أرشيف TAR الوجهة
using (TarArchive destArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// كرر على الإدخالات
foreach (TarEntry entry in sourceArchive.Entries)
{
// الشيك هو إدخال ليس دليلا. يتم تخطي الإدخالات التي هي عبارة عن أدلة ، ولكن تتم إضافة ملفاتها مع مراعاة المسارات النسبية.
if (!entry.IsDirectory)
{
// تحميل الدخول إلى دفق الذاكرة
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// إضافة إدخال إلى الوجهة TAR
destArchive.CreateEntry(entry.Name, mem);
}
}
// حفظ الأرشيف المدمج بشكل منفصل
destArchive.Save("Archives/merged-archive.tar");
}
}
دمج ZIP في TAR في C#
في هذا القسم ، سنرى كيفية دمج ملف ZIP في أرشيف TAR في C#. فيما يلي خطوات إجراء هذه العملية.
- قم بتحميل ملف ZIP باستخدام فئة الأرشيف.
- قم بتحميل ملف TAR باستخدام فئة TarArchive.
- الآن ، قم بالتكرار خلال إدخالات ZIP باستخدام مجموعة Archive.Entries.
- انسخ كل ArchiveEntry إلى كائن MemoryStream باستخدام أسلوب ArchiveEntry.Open().CopyTo (MemoryStream).
- أضف إدخالاً إلى تقرير التقييم الثالث باستخدام TarArchive.CreateEntry (سلسلة ، MemoryStream) طريقة .
- احفظ ملف TAR باستخدام طريقة TarArchive.Save(string).
يوضح نموذج التعليمات البرمجية التالي كيفية دمج أرشيف ZIP في TAR.
// قم بتحميل أرشيف ZIP المصدر
using (Archive zipArchive = new Archive("Archives/SourceArchive.zip"))
{
// تحميل أرشيف TAR الوجهة
using (TarArchive tarArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// كرر على الإدخالات
foreach (ArchiveEntry entry in zipArchive.Entries)
{
// الشيك هو إدخال ليس دليلا. يتم تخطي الإدخالات التي هي عبارة عن أدلة ، ولكن تتم إضافة ملفاتها مع مراعاة المسارات النسبية.
if (!entry.IsDirectory)
{
// تحميل الدخول إلى دفق الذاكرة
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// إضافة إدخال إلى الوجهة TAR
tarArchive.CreateEntry(entry.Name, mem);
}
}
// حفظ الأرشيف المدمج بشكل منفصل
tarArchive.Save("Archives/merged-archive.tar");
}
}
الجمع بين TAR و ZIP في C#
على غرار المثال السابق ، يمكنك دمج ملف TAR في ZIP. يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الملفات من TAR ودمجها في ملف ZIP.
// تحميل أرشيف TAR
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// تحميل أرشيف مضغوط
using (Archive zipArchive = new Archive("Archives/DestinationArchive.zip"))
{
// كرر على الإدخالات
foreach (TarEntry entry in tarArchive.Entries)
{
// الشيك هو إدخال ليس دليلا. يتم تخطي الإدخالات التي هي عبارة عن أدلة ، ولكن تتم إضافة ملفاتها مع مراعاة المسارات النسبية.
if (!entry.IsDirectory)
{
// تحميل الدخول إلى دفق الذاكرة
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// إضافة إدخال إلى ZIP
zipArchive.CreateEntry(entry.Name, mem);
}
}
// حفظ الأرشيف المدمج بشكل منفصل
zipArchive.Save("Archives/merged-archive.zip");
}
}
احصل على ترخيص API مجاني
يمكنك استخدام Aspose.ZIP for .NET بدون قيود تقييمية عن طريق الحصول على ترخيص مجاني مؤقت.
استنتاج
في هذه المقالة ، تعلمت كيفية دمج أرشيفات ZIP أو TAR متعددة برمجيًا في C#. على وجه الخصوص ، قمنا بتغطية كيفية دمج ملفات ZIP وملفات TAR و ZIP في TAR و TAR في ZIP ديناميكيًا. لاستكشاف المزيد حول Aspose.ZIP for .NET ، يمكنك زيارة التوثيق. أيضًا ، يمكنك إرسال استفساراتك إلى المنتدى الخاص بنا.