ادغام چندین آرشیو ZIP یا TAR در سی شارپ

هنگام کار با آرشیوها از داخل برنامه‌های NET خود، ممکن است لازم باشد چندین فایل ZIP یا TAR را ادغام کنید. به عنوان مثال، ممکن است بخواهید فایل‌ها و پوشه‌ها را از چندین آرشیو استخراج کرده و در یک آرشیو قرار دهید. برای دستیابی به آن، این مقاله نحوه ادغام چندین فایل ZIP یا TAR در C# را پوشش می‌دهد. ما ادغام ZIP در ZIP، TAR به TAR، ZIP در TAR و TAR در ZIP را پوشش خواهیم داد.

C# .NET API برای ادغام فایل های ZIP و TAR

برای ادغام چندین آرشیو ZIP و TAR، از Aspose.ZIP برای NET استفاده می کنیم. این یک API .NET غنی از ویژگی ها است که به شما امکان می دهد فرمت های مختلف آرشیو محبوب را ایجاد و دستکاری کنید. می‌توانید DLL API را دانلود یا مستقیماً با استفاده از NuGet نصب کنید.

PM> Install-Package Aspose.Zip

ادغام چندین فایل ZIP در سی شارپ

بیایید سفر خود را برای ادغام آرشیوها با فرمت ZIP آغاز کنیم. ما دو بایگانی ZIP را می گیریم و ورودی های آنها را در یک فایل ZIP جمع می کنیم. مراحل زیر برای ادغام چندین فایل ZIP در سی شارپ آمده است.

نمونه کد زیر نحوه ادغام دو فایل ZIP در سی شارپ را نشان می دهد.

// بایگانی 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 در سی شارپ

اکنون بیایید نحوه ادغام چندین آرشیو TAR در سی شارپ را بررسی کنیم. مراحل زیر برای دستیابی به این مهم است.

نمونه کد زیر نحوه ادغام چندین فایل TAR در سی شارپ را نشان می دهد.

// بایگانی TAR منبع را بارگیری کنید
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 در سی شارپ

در این بخش نحوه ادغام یک فایل ZIP در بایگانی TAR در سی شارپ را خواهیم دید. مراحل زیر برای انجام این عملیات آورده شده است.

نمونه کد زیر نحوه ادغام آرشیو 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 در سی شارپ

مشابه مثال قبلی، می توانید یک فایل TAR را در ZIP ادغام کنید. نمونه کد زیر نحوه استخراج فایل ها از TAR و ادغام آنها در یک ZIP را نشان می دهد.

// بایگانی TAR را بارگیری کنید
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
    // بایگانی ZIP را بارگیری کنید
    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 برای دات‌نت بدون محدودیت ارزیابی استفاده کنید.

نتیجه

در این مقاله، نحوه ادغام چندین آرشیو ZIP یا TAR را به صورت برنامه نویسی در سی شارپ یاد گرفتید. به ویژه، ما نحوه ادغام فایل‌های ZIP، فایل‌های TAR، ZIP در TAR و TAR در ZIP را به صورت پویا پوشش داده‌ایم. برای کاوش بیشتر در مورد Aspose.ZIP برای دات نت، می توانید از اسناد دیدن کنید. همچنین، می‌توانید سوالات خود را در [تالار گفتمان34 ما ارسال کنید.

همچنین ببینید