ภาพรวม

เราสามารถแบ่งเครื่องมือการเก็บถาวรและการบีบอัดออกเป็นสามคลาสหลัก:
- การเก็บถาวรที่มีหลายไฟล์โดยปกติจะมีการบีบอัด – ZIP, 7Z, XAR;
- การจัดเก็บหลายไฟล์โดยไม่มีการบีบอัด – TAR, CPIO;
- การบีบอัด -เฉพาะรูปแบบที่ไม่มีรายการ – GZ, LZ, BZIP2, XZ, ZStandard, Z.
ไฟล์เก็บถาวรจากคลาสที่สองมักจะรวมกับรูปแบบการบีบอัดเท่านั้น พวกมันได้รับความนิยมในระบบที่คล้ายกับ Unix โดยมีการดำเนินการที่แตกต่างกัน อย่างหนึ่งสำหรับการเก็บถาวร อีกอย่างสำหรับการบีบอัด ด้านล่างนี้คือคำอธิบายและตัวอย่างสำหรับไฟล์เก็บถาวรทุกประเภท

ไฟล์บีบอัดที่มีหลายไฟล์

เราใช้วิธี CreateEntry สำหรับทุกไฟล์ที่จะบีบอัด ในตัวอย่างนี้ เราไม่ได้จัดเตรียมการตั้งค่าการบีบอัด ดังนั้นการตั้งค่าดังกล่าวจึงเป็นค่าเริ่มต้นสำหรับรูปแบบที่เลือก

วิธี ZIP หลายไฟล์

ค่าเริ่มต้นคืออัลกอริธึม Deflate

Zip compression with Deflate algoritm

    using (Archive archive = new Archive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        // Add as many entries as you need 
        archive.Save("archive.zip");	
    }

วิธีสร้างไฟล์เก็บถาวร 7-ZIP ของไฟล์หลาย ๆ ไฟล์

ค่าเริ่มต้นสำหรับ 7-zip คืออัลกอริทึม LZMA

7-Zip with LZMA algorithm

    using (SevenZipArchive archive = new SevenZipArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");	
        // Add as many entries as you need 	
        archive.Save("archive.7z");	
    }

ไฟล์เก็บถาวร XAR ที่มีหลายไฟล์

ค่าเริ่มต้นคืออัลกอริทึม ZLib

XAR with ZLib algorithm

    using (XarArchive archive = new XarArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        // Add as many entries as you need 	
        archive.Save("archive.xar");	
    }

การจัดเก็บหลายไฟล์โดยไม่มีการบีบอัด

วิธีการสำหรับรูปแบบ TAR และ CPIO นั้นคล้ายคลึงกันและอยู่ในวิธี CreateEntry ที่ทราบอยู่แล้ว

ไฟล์เก็บถาวร TAR โดยไม่มีการบีบอัด

TAR storing files without compression

    using (TarArchive archive = new TarArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        // Add as many entries as you need 
        archive.Save("archive.tar");
    }

ไฟล์เก็บถาวร CPIO โดยไม่มีการบีบอัด

CPIO storing files without compression

    using (TarArchive archive = new TarArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        // Add as many entries as you need 
        archive.Save("archive.cpio");
    }

รูปแบบการบีบอัดเท่านั้นที่ไม่มีรายการ

ไฟล์เก็บถาวรเช่น GZIP, LZ, BZIP2, XZ, Z ไม่รองรับรายการและสามารถบีบอัดได้เพียงแหล่งเดียว ดูตัวอย่างที่มีการบีบอัดดังกล่าว

ไฟล์เก็บถาวร GZ รูปแบบการบีบอัดเท่านั้นโดยไม่มีรายการ

GZIP with compress only single source

using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
    using (GzipArchive archive = new GzipArchive())
    {
        archive.SetSource(source);
        archive.Save("archive.gz");
    }
}

ไฟล์เก็บถาวร LZ รูปแบบการบีบอัดเท่านั้นโดยไม่มีรายการ

LZIP with compress only single source

using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
    using (GzipArchive archive = new GzipArchive())
    {
        archive.SetSource(source);
        archive.Save("archive.gz");
    }
}

Aspose.ZIP อนุญาตให้รวมรูปแบบไฟล์เก็บถาวรเท่านั้นและรูปแบบการบีบอัดเท่านั้นด้วยวิธีเดียว นี่คือตัวอย่างของฟังก์ชันนี้ที่มีการรวม TAR.GZ เพื่อให้บรรลุเป้าหมายนี้ เราใช้วิธี SaveGzipped

ชุดค่าผสม TAR.GZ

มีวิธีการที่คล้ายกันสำหรับรูปแบบการบีบอัด LZIP, XZ, ZStandard, Z

TAR.GZ with SaveGzipped method

    using (TarArchive archive = new TarArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        archive.SaveGzipped("archive.tar.gz");
    }

TAR.BZ2

อย่างไรก็ตาม เราจำเป็นต้องใช้วิธีอื่นสำหรับรูปแบบ BZIP2

BZIP2 with SaveGzipped method

    using (TarArchive tar = new TarArchive())
    {
        tar.CreateEntry("first.bin",  "data1.bin");
        tar.CreateEntry("second.bin",  "data2.bin");	
        using (Bzip2Archive archive = new Bzip2Archive())
        {
            archive.SetSource(tar);
            archive.Save("archive.tar.bz2");
        } 
    }

Aspose.ZIP อื่นๆ ที่รองรับสำหรับฟีเจอร์ .NET API

ใช้ไลบรารี Aspose.ZIP C# เพื่อแปลง รวม แก้ไขเอกสารไฟล์ zip แยกข้อมูลจากไฟล์เก็บถาวร และอื่นๆ อีกมากมาย!

  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: