รวมไฟล์เก็บถาวร 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 API ที่มีคุณลักษณะหลากหลายซึ่งช่วยให้คุณสร้างและจัดการรูปแบบไฟล์เก็บถาวรยอดนิยมต่างๆ คุณสามารถ ดาวน์โหลด DLL ของ API หรือติดตั้งโดยตรงโดยใช้ NuGet

PM> Install-Package Aspose.Zip

รวมไฟล์ ZIP หลายไฟล์ใน C#

มาเริ่มการเดินทางของเราในการรวมไฟล์เก็บถาวรด้วยรูปแบบ ZIP เราจะใช้ไฟล์เก็บถาวร ZIP สองรายการและรวบรวมรายการเป็นไฟล์ ZIP ไฟล์เดียว ต่อไปนี้เป็นขั้นตอนในการรวมไฟล์ ZIP หลายไฟล์ใน C#

  • โหลดไฟล์ ZIP ไฟล์แรกโดยใช้คลาส Archive
  • ในทำนองเดียวกัน โหลดไฟล์ ZIP ไฟล์ที่สองโดยใช้คลาส Archive
  • ตอนนี้ วนซ้ำรายการของ ZIP แรกโดยใช้คอลเลกชัน Archive.Entries
  • คัดลอกแต่ละ ArchiveEntry ไปยังวัตถุ MemoryStream โดยใช้เมธอด ArchiveEntry.Open().CopyTo(MemoryStream)
  • เพิ่มรายการไปยัง ZIP ที่สองโดยใช้เมธอด Archive.CreateEntry(string, 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 หลายไฟล์ใน C#

// โหลดไฟล์เก็บถาวร 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 ใน 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"))
{
    // โหลดไฟล์ 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 for .NET ได้โดยไม่มีข้อจำกัดในการประเมินโดยรับ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีผสานไฟล์เก็บถาวร ZIP หรือ TAR หลายไฟล์โดยทางโปรแกรมใน C# โดยเฉพาะอย่างยิ่ง เราได้กล่าวถึงวิธีการรวมไฟล์ ZIP, ไฟล์ TAR, ZIP เป็น TAR และ TAR เป็น ZIP แบบไดนามิก หากต้องการสำรวจเพิ่มเติมเกี่ยวกับ Aspose.ZIP for .NET คุณสามารถไปที่ เอกสารประกอบ นอกจากนี้ คุณสามารถโพสต์คำถามของคุณไปที่ ฟอรัม ของเรา

ดูสิ่งนี้ด้วย