สร้างไฟล์เก็บถาวร 7Zip ใน C #

ใน โพสต์ก่อนหน้า ฉันได้พูดถึงวิธีต่างๆ ในการสร้างไฟล์เก็บถาวร ZIP โดยใช้ C# บทความนี้ยังกล่าวถึงวิธีสร้างไฟล์ ZIP ที่เข้ารหัสและป้องกันด้วยรหัสผ่าน นอกจากรูปแบบ ZIP แล้ว ยังมีรูปแบบไฟล์เก็บถาวรอื่นๆ ที่ใช้กันทั่วไป เช่น 7z, tar, RAR ฯลฯ ในบรรดารูปแบบไฟล์เก็บถาวร 7z จะอิงตามสถาปัตยกรรมโอเพ่นซอร์ส และใช้สำหรับบีบอัดไฟล์และโฟลเดอร์ที่มีอัตราส่วนการบีบอัดสูง นอกจากนี้ยังรองรับการเข้ารหัส AES 256 บิตและอนุญาตให้เข้ารหัสชื่อไฟล์ได้เช่นกัน ในบทความนี้ ฉันจะสาธิตวิธีสร้างไฟล์เก็บถาวร 7z (7-Zip) โดยทางโปรแกรมโดยใช้ C#

บทความนี้แบ่งออกเป็นส่วนต่อไปนี้:

ขั้นตอนและตัวอย่างโค้ดทั้งหมดในบทความนี้อ้างอิงจาก Aspose.ZIP for .NET ดังนั้น ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง API โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:

สร้างไฟล์เก็บถาวร 7z (7-Zip) โดยใช้ C#

มีสองสถานการณ์ที่เป็นไปได้ในการบีบอัดไฟล์ลงในไฟล์เก็บถาวร 7z ไม่ว่าคุณจะมีเพียงไฟล์เดียวหรืออาจมีไฟล์จำนวนมากที่ต้องบีบอัด คุณสามารถจัดการกับทั้งสองสถานการณ์ได้อย่างชัดเจน

สร้างไฟล์เก็บถาวร 7z ด้วยรายการเดียว

ต่อไปนี้เป็นขั้นตอนในการสร้างไฟล์เก็บถาวร 7z ด้วยรายการเดียว

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างไฟล์เก็บถาวร 7z (7-Zip) โดยใช้ C#

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

สร้างไฟล์เก็บถาวร 7z ที่มีหลายรายการ

ในกรณีนี้ คุณสามารถใส่ไฟล์ในโฟลเดอร์และส่งพาธของโฟลเดอร์ไปยังเมธอด SevenZipArchive.CreateEntries() ต่อไปนี้เป็นขั้นตอนในการเพิ่มรายการไฟล์หลายรายการไปยังไฟล์เก็บถาวร 7z

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างไฟล์เก็บถาวร 7z ที่มีหลายรายการโดยใช้ C#

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntries(dataDir);
    archive.Save("SevenZip.7z");
}

สร้าง AES Encrypted 7z Archive โดยใช้ C#

รูปแบบ 7z รองรับการเข้ารหัส AES เพื่อรักษาความปลอดภัยของไฟล์ ในการเข้ารหัสไฟล์ 7z จะใช้คลาส SevenZipAESEncryptionSettings ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างไฟล์เก็บถาวร 7z ที่เข้ารหัส AES โดยใช้ C#

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.7z");
}

ตั้งรหัสผ่านที่แตกต่างกันสำหรับรายการ 7z โดยใช้ C

รูปแบบ 7z ยังให้คุณระบุรหัสผ่านที่แตกต่างกันสำหรับทุกรายการไฟล์ ตัวอย่างเช่น หากคุณกำลังจะบีบอัดไฟล์สองไฟล์ในไฟล์เก็บถาวร 7z คุณสามารถระบุรหัสผ่านที่แตกต่างกันสำหรับแต่ละไฟล์ได้ ต่อไปนี้เป็นขั้นตอนในการตั้งรหัสผ่านที่แตกต่างกันสำหรับรายการ 7z

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีตั้งรหัสผ่านสำหรับทุกรายการในไฟล์เก็บถาวร 7z

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีสร้างไฟล์เก็บถาวร 7z โดยทางโปรแกรมโดยใช้ C# นอกจากนี้ เราได้เห็นวิธีสร้างไฟล์ 7z ที่เข้ารหัส AES และตั้งรหัสผ่านสำหรับทุกรายการไฟล์ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการบีบอัด/คลายไฟล์ได้จาก ที่นี่

บทความที่เกี่ยวข้อง