C# สร้าง Zip ไฟล์ด้วย DotNetZip Library (Ionic.Zip)



DotNetZip Library เป็น class library สำหรับการบีบอัด แตกไฟล์และอัพเดท zip ไฟล์ สามารถนำไปใช้งานได้ง่ายรองรับการทำงานทั้งภาษา VB, C# หรือ .NET

ตัวอย่างนี้ผมเขียนโดยภาษา C# แบบ Console เพื่อให้เข้าใจโค้ดและง่ายต่อการอธิบาย เพราะจากตัวอย่างนี้สามารถนำโค้ดไปประยุกต์ใช้ได้ทั้ง Windows Forms หรือ Web Application ได้ครับ

การเรียกใช้ DotNetZip Library(Ionic.Zip)

ก่อนอื่นเราต้องดาวน์โหลด DotNetZip Library มาก่อนนะครับ โดยเข้าไปที่เว็บ https://dotnetzip.codeplex.com/
เมื่อดาวน์โหลดเสร็จก็แตกไฟล์ ในที่นี้ผมใช้ zip-v1.9 โดยแตกไว้ที่ D:\idevcsharp.com\lib

C# Ionic Zip
 

จากนั้นให้ทำการ Add References  Ionic.Zip.dll ที่แตกไฟล์ออกมา

C# Ionic Zip
 

เลือก Ionic.Zip.dll แล้วกด Add

C# Ionic Zip
 

เมื่อ Add References เสร็จ Ionic.Zip ก็จะแสดงตรง References 

C# Ionic Zip
 

เป็นการเสร็จสิ้นการ Add References  Ionic.Zip จากนั้นก็เขียนโค้ดเพื่อเรียกใช้งาน  Ionic.Zip  เพื่อสร้าง Zip ไฟล์

ตัวอย่างโค้ด

เราต้องทำการ using Ionic.Zip เข้ามาใช้งานก่อน

using Ionic.Zip;

จากนั้นทำการเรียกใช้งาน class ZipFile  ,  กำหนดไฟล์ที่ต้องการเพิ่ม, กำหนดที่จัดเก็บ zip เมื่อบีบอัดเสร็จสมบูรณ์

using (ZipFile zip = new ZipFile())
{
    //กำหนดไฟล์ที่ต้องการเพิ่มเข้าไปใน zip
    //D:\idevcsharp.com\example\Ionic.Zip\  คือโฟลเดอร์ที่ผมใช้เก็บไฟล์
    zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\TextFile.txt", "");
    zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\Image.jpg", "");
    zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\Word.docx", "");
    zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\Code.php", "");

    //กำหนดที่จัดเก็บไฟล์ zip
    zip.Save(@"D:\idevcsharp.com\example\Ionic.Zip\ZipSuccess.zip");
}

 

อธิบายเพิ่มเติม

zip.AddFile(“ที่อยู่ของไฟล์ที่เราต้องการเพิ่มเข้าไปใน Zip“, “โฟล์เดอร์สำหรับเก็บไฟล์เมื่ออยู่ใน Zip“)
zip.Save(“กำหนดที่อยู่ของ Zip เมื่อทำงานเสร็จ“)

 

โค้ดทั้งหมด

using System;
using Ionic.Zip;

namespace iDevcsharpConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ZipFile zip = new ZipFile())
            {
                //กำหนดไฟล์ที่ต้องการเพิ่มเข้าไปใน zip
                //D:\idevcsharp.com\example\Ionic.Zip\  คือโฟลเดอร์ที่ผมใช้เก็บไฟล์
                zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\TextFile.txt", "");
                zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\Image.jpg", "");
                zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\Word.docx", "");
                zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\Code.php", "");

                //กำหนดที่จัดเก็บไฟล์ zip
                zip.Save(@"D:\idevcsharp.com\example\Ionic.Zip\ZipSuccess.zip");
            }
        }
    }
}

 
C# Ionic Zip