C# DotNetZip Library (Ionic.Zip) เพิ่มไฟล์ภาษาไทย



C# Ionic.Zip ชื่อไฟล์ภาษาไทย

Ionic.Zip เมื่อใช้งาน Encoding โดยเริ่มต้นจะไม่รองรับการเพิ่มไฟล์ภาษาไทย ทำให้ไฟล์ที่เพิ่มเข้าไปใน zip นั้นแสดงชื่อเป็นเครื่องหมายคำถาม (???) ดังนั้นวิธีแก้ไขคือเราต้องกำหนด Encoding ให้เมื่อเรียกใช้งาน class ZipFile เพื่อกำหนด object

วิธีแก้ไข Ionic.Zip ให้เพิ่มไฟล์ที่เป็นชื่อภาษาไทย จะต้องกำหนด Encoding.UTF8

ตรวจสอบว่า using System.Text เข้ามาหรือยัง

using System.Text;

ขั้นตอนสร้าง object ZipFile ให้กำหนด Encoding.UTF8 เข้าไปด้วย เพียงเท่านี้ก็จะสามารถเพิ่มไฟล์ที่มีชื่อภาษาไทยเข้าไปใน Zip ได้

ZipFile zip = new ZipFile(Encoding.UTF8)

โค้ดทั้งหมด

using System;
using System.Text;
using Ionic.Zip;

namespace iDevcsharpConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ZipFile zip = new ZipFile(Encoding.UTF8))
            {
                zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\ภาษาไทย1.txt", "");
                zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\ภาษาไทย2.jpg", "");

                zip.Save(@"D:\idevcsharp.com\example\Ionic.Zip\ภาษาไทย.zip");
            }
        }
    }
}

C# Ionic.Zip ชื่อไฟล์ภาษาไทย