دمج ملفات ZIP أو TAR المتعددة في C#

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

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 في 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 متعددة في 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.

// قم بتحميل أرشيف 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 ، يمكنك زيارة التوثيق. أيضًا ، يمكنك إرسال استفساراتك إلى المنتدى الخاص بنا.

أنظر أيضا