รูปแบบไฟล์ 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 คืออะไร?

สาเหตุที่พบบ่อยที่สุดสำหรับการ บีบอัดไฟล์ Zip คือการลดขนาดไฟล์เพื่อการจัดเก็บ การส่ง และการจัดระเบียบข้อมูลที่มีประสิทธิภาพ

2. เหตุใด zip จึงเรียกว่าไฟล์เก็บถาวร

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

3. ไวรัสสามารถติดซิปได้หรือไม่?

ใช่ ไวรัสอาจทำให้ไฟล์ภายในไฟล์ Zip ติดไวรัสได้หากตัวไฟล์เองติดไวรัส แม้ว่ารูปแบบ Zip เองจะไม่เป็นอันตรายโดยเนื้อแท้ แต่ก็สามารถจัดเก็บและขนส่งไฟล์ที่ติดไวรัสได้ เช่นเดียวกับรูปแบบไฟล์อื่นๆ