ภาพรวม
เราสามารถแบ่งเครื่องมือการเก็บถาวรและการบีบอัดออกเป็นสามคลาสหลัก:- การเก็บถาวรที่มีหลายไฟล์โดยปกติจะมีการบีบอัด – 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
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for .NET?
- Customers List
- Success Stories