รูปแบบไฟล์ ZIP
ในยุคดิจิทัลที่ข้อมูลเป็นสิ่งสำคัญยิ่งและประสิทธิภาพการจัดเก็บข้อมูลเป็นสิ่งสำคัญยิ่ง ไฟล์ ZIP ยังคงเป็นโซลูชันที่รวดเร็วและแพร่หลายสำหรับการบีบอัดและจัดระเบียบไฟล์
เกี่ยวกับข้อมูลไฟล์ Zip
ZIP เป็นรูปแบบไฟล์เก็บถาวรที่สามารถเก็บไฟล์และโฟลเดอร์บีบอัดแบบไม่สูญเสียข้อมูลหนึ่งหรือหลายไฟล์ โดยมีหรือไม่มีการเข้ารหัสก็ได้ ZIP เป็นรูปแบบที่ได้รับความนิยมมากที่สุดซึ่งเป็นที่รู้จักมานานกว่าสามสิบปี และรองรับในระบบปฏิบัติการสมัยใหม่แทบทุกระบบ รูปแบบนี้ยังขยายไปยังรูปแบบอื่นๆ เช่น JAR และ OpenDocument อีกด้วย
ข้อมูลประวัติรูปแบบไฟล์ Zip-archive
ข้อกำหนดรูปแบบแรกของ ZIP ได้รับการเผยแพร่ในปี 1989 ผู้เขียนแนวคิด ZIP คือ Phil Katz และ Gary Conway ประสบความสำเร็จในทันทีเนื่องจากประสิทธิภาพในการลดขนาดไฟล์ ทำให้ง่ายต่อการจัดเก็บและส่งไฟล์ผ่านการเชื่อมต่ออินเทอร์เน็ตที่ช้า และความจุในการจัดเก็บข้อมูลที่จำกัดในยุคนั้น ตั้งแต่ปี 1993 เป็นต้นมา รองรับวิธีการบีบอัดแบบ Deflate ที่ใช้บ่อยที่สุด การเข้ารหัส AES ที่แข็งแกร่งถูกนำมาใช้ในปี 2003 แม้ว่ามาตรฐานจะค่อนข้างเก่า แต่มาตรฐานก็ยังไม่กลายเป็นฟอสซิล - กำลังได้รับการพัฒนาอย่างแข็งขันในทุกวันนี้ ดังนั้นในปี 2020 จึงขยายออกไปด้วยวิธีการบีบอัด Zstandard, MP3 และ XZ
โครงสร้างของไฟล์ ZIP
ไฟล์เก็บถาวร ZIP ได้รับการออกแบบในโครงสร้างแบบลำดับชั้นเพื่อจัดเก็บและจัดระเบียบไฟล์บีบอัดอย่างมีประสิทธิภาพ ในขณะเดียวกันก็ช่วยให้เข้าถึงไฟล์แต่ละไฟล์ภายในไฟล์เก็บถาวรได้อย่างง่ายดาย แต่ละรายการของไฟล์เก็บถาวรจะถูกบีบอัดแยกกัน อาจมีการบีบอัดและวิธีการเข้ารหัสของตัวเองด้วยซ้ำ รายการภายในไฟล์เก็บถาวรมีส่วนหัวอยู่ข้างหน้าด้วยข้อมูลเมตาของไฟล์ต้นฉบับ สารบัญอยู่ส่วนท้ายของไฟล์ วิธีการดังกล่าวช่วยให้สามารถเขียนไฟล์เก็บถาวรแบบขยายในตัว (SFX) ได้ ซึ่งยังคงเป็นไฟล์ ZIP ที่ถูกต้อง เนื่องจากส่วนที่ปฏิบัติการได้อยู่ที่จุดเริ่มต้นของไฟล์ SFX
วิธีการบีบอัดซิป
ZIP สมัยใหม่ช่วยให้สามารถบีบอัดข้อมูลด้วยอัลกอริทึม Deflate, Deflate64™, BZIP2, LZMA, XZ, PPMd, Zstandard ไฟล์ยังสามารถจัดเก็บได้โดยไม่ต้องบีบอัด ที่พบบ่อยที่สุดคือ Deflate ซึ่งเป็นค่าเริ่มต้นในเครื่องมือเก็บถาวร นอกจากนี้ยังมีอัลกอริธึมสำหรับการบีบอัดไฟล์เฉพาะแบบไม่สูญเสียข้อมูล: MP3, JPEG, WAV Aspose.ZIP รองรับวิธีการ Deflate, Deflate64™, Bzip2, LZMA, XZ, PPMd และ Zstandard อย่างสมบูรณ์ อนุญาตให้แยกไฟล์เสียงที่ถูกบีบอัด WavPack
การดำเนินงานที่รองรับไฟล์ Zip
การใช้ Aspose.ZIP คุณสามารถจัดการไฟล์ ZIP ได้หลายวิธี คุณสามารถเขียนไฟล์เก็บถาวร เพิ่มรายการลงในไฟล์เก็บถาวรที่มีอยู่โดยไม่ต้องแพ็กใหม่ ลบรายการออกจากไฟล์เก็บถาวรที่มีอยู่โดยไม่ส่งผลกระทบต่อส่วนที่เหลือของไฟล์เก็บถาวร และแยกรายการที่ต้องการหรือไฟล์เก็บถาวรทั้งหมด คุณสามารถเข้ารหัสและถอดรหัสแต่ละรายการแยกกันด้วยอัลกอริธึมการเข้ารหัส AES แบบดั้งเดิมหรือสมัยใหม่ Aspose.ZIP สามารถสร้างไฟล์ ZIP แบบขยายได้เองและมีหลายวอลุ่ม
ไฟล์ซิป - โครงสร้างภายใน
ตามที่กล่าวไว้ ไดเร็กทอรีกลางซึ่งเป็นสารบัญจะอยู่ที่ส่วนท้ายของไฟล์ ZIP ไดเร็กทอรีนี้ทำหน้าที่เป็นดัชนี โดยแสดงรายการไฟล์ทั้งหมดในไฟล์เก็บถาวรพร้อมกับตำแหน่งภายในไฟล์เก็บถาวร ส่วนหัวของรายการอาจรวมถึงเวลาในการสร้างและแก้ไข คุณลักษณะของระบบไฟล์ ชื่อไฟล์ และความคิดเห็น ส่วนหัวของรายการสามารถขยายได้ด้วยฟิลด์พิเศษที่กำหนดเองเพื่อจัดเก็บข้อมูลเมตาที่กำหนดเอง เป็นไปได้ที่จะรวมส่วนหัว Zip64 เพื่อรองรับรายการมากกว่า 65,535 รายการต่อไฟล์เก็บถาวร ขนาดสูงสุดของไฟล์ ZIP ที่มีนามสกุล Zip64 คือ 264−1 ไบต์ ไฟล์ ZIP สามารถแบ่งออกเป็นหลายไฟล์ได้ ในกรณีเช่นนี้ ไดเร็กทอรีกลางจะจัดเก็บออฟเซ็ตของแต่ละวอลุ่มเพื่อให้เข้าถึงรายการใดรายการหนึ่งได้อย่างรวดเร็ว
ความนิยมของไฟล์ Zip และการสนับสนุน
ZIP เป็นรูปแบบไฟล์เก็บถาวรอันดับหนึ่ง ไฟล์เก็บถาวร ZIP ได้รับการยอมรับและรองรับอย่างกว้างขวาง โดยแอปพลิเคชันซอฟต์แวร์ต่างๆ รวมถึงตัวจัดการไฟล์ยอดนิยม เช่น Windows Explorer, macOS Finder และเครื่องมือโอเพ่นซอร์ส เช่น 7-Zip และ WinRAR ให้การสนับสนุนแบบเนทิฟสำหรับ การสร้างและแตกไฟล์ ZIP การสนับสนุนนี้ขยายไปยังบริการจัดเก็บข้อมูลบนคลาวด์ ไคลเอนต์อีเมล และแม้แต่อุปกรณ์มือถือ
ตัวอย่างการใช้ไฟล์ Zip
ไฟล์เก็บถาวร Zip เป็นรูปแบบไฟล์ที่แพร่หลายสำหรับการบีบอัดและจัดระเบียบข้อมูล ทำให้จำเป็นในแอปพลิเคชันซอฟต์แวร์ต่างๆ การดำเนินการกับไฟล์เก็บถาวรผ่าน .NET ช่วยให้นักพัฒนาสามารถทำงานกับไฟล์ Zip ได้อย่างง่ายดาย ในตัวอย่างโค้ดต่อไปนี้ เราจะเจาะลึกถึงความสามารถของการดำเนินการกับไฟล์ Zip ซึ่งสาธิตวิธีการ สร้าง Zip ใหม่ ไฟล์เก็บถาวรและแยกไฟล์อย่างมีประสิทธิภาพจาก สิ่งที่มีอยู่ ตัวอย่างเหล่านี้จะช่วยให้คุณควบคุมความสามารถของไลบรารีนี้เพื่อจัดการไฟล์เก็บถาวร Zip ได้อย่างราบรื่นในโครงการ .NET ของคุณ
Create Zip file via .NET
Compose ZIP archive with two entries added by their paths.:
using (var archive = new Archive())
{
archive.CreateEntry("entry_name1.dat", "input_file1.dat");
archive.CreateEntry("entry_name2.dat", "input_file2.dat");
archive.Save("result_archive.zip");
}
How to UnZIP files in C#
Steps: Unzip File to Folder in C#
- Create an instance of Archive class based on your zip file.
- Unzip the zip file using Archive.ExtractToDirectory method to your folder.
using (var archive = new Archive("input_archive.zip"))
{
archive.ExtractToDirectory("outputDirectory");
}
Compressing Single File ZIP File
Steps: Compressing Single File in C#
- Create a file stream with the desired name of your output zip file.
- Create file stream of the data file to be compressed and encrypted.
- Create an instance of Archive class and pass to it an instance of ArchiveEntrySettings class with AesEcryptionSettings instance, specifying the password.
- Add data file created in step 2 using Archive.CreateEntry method.
- Compress and encrypt the data file using Archive.Save method and pass it the file stream created in step 1.
using (var zipFile = File.Open("EncrypedWithAES256.zip", FileMode.Create))
{
using (var source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
archive.CreateEntry("alice29.txt", source);
archive.Save(zipFile);
}
}
}
Deleting entries from existing archive
You do not have to repack whole archive when you only need to remove one entry from it. Steps:
- Create a file stream with the desired name of your output zip file.
- Create an instance of Archive class based on your zip file.
- Delete the first file - the entry with zero index – from the archive.
- Save the archive without excluded entry to output stream from step 1
using (FileStream outputZipFile = File.Open(“withoutAnEntry.zip”, FileMode.Create))
{
using (Archive archive = new Archive(“archive.zip”))
{
archive.DeleteEntry(archive.Entries[0]);
archive.Save(outputZipFile);
}
}
ข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ Zip
มีคนถาม
1. ฉันควรเลือกวิธีการเข้ารหัสแบบใด
รูปแบบ ZIP รองรับเทคนิคการเข้ารหัส AES แบบดั้งเดิม (ZipCrypto) และสมัยใหม่ แบบแรกนั้นอ่อนแอกว่าแบบหลังและแตกหักง่าย ZipCrypto ได้รับการสนับสนุนโดย Aspose.ZIP สำหรับระบบเดิม โปรดใช้การเข้ารหัส AES256 เท่านั้นเมื่อเขียนไฟล์เก็บถาวร
2. มีวิธีใช้ประโยชน์จากโปรเซสเซอร์แบบมัลติคอร์ในการบีบอัดหรือไม่?
Aspose.ZIP ช่วยให้คุณสามารถเขียนรายการไฟล์ ZIP ตามคอร์ CPU ที่แตกต่างกัน ซึ่งสามารถลดเวลาในการบีบอัดทั้งหมดได้อย่างมาก ดู บทความ พร้อมคำอธิบายและตัวอย่างการใช้งาน
3. ไวรัสสามารถติดซิปได้หรือไม่?
ใช่ ไวรัสอาจทำให้ไฟล์ภายในไฟล์ Zip ติดไวรัสได้หากตัวไฟล์เองติดไวรัส แม้ว่ารูปแบบ Zip เองจะไม่เป็นอันตรายโดยเนื้อแท้ แต่ก็สามารถจัดเก็บและขนส่งไฟล์ที่ติดไวรัสได้ เช่นเดียวกับรูปแบบไฟล์อื่นๆ