ไฟล์เก็บถาวรเช่น ZIP, RAR, TAR, GZIP, BZIP2 มักใช้เพื่อจัดเก็บไฟล์และโฟลเดอร์มากกว่าหนึ่งไฟล์ในคอนเทนเนอร์เดียว อีกเหตุผลหลักสำหรับไฟล์เก็บถาวรคือการลดขนาดไฟล์ทั้งหมดโดยใช้อัลกอริธึมการบีบอัด เช่นเดียวกับการแยกวิเคราะห์และแยกข้อมูลจากเอกสารในรูปแบบไฟล์ต่างๆ คุณสามารถจัดการกับไฟล์เก็บถาวรได้ในลักษณะเดียวกัน คุณสามารถแยกข้อความ รูปภาพ และแม้แต่ข้อมูลเมตาจากไฟล์ที่ถูกบีบอัดภายในไฟล์เก็บถาวร ในบทความนี้ เราจะพูดถึงวิธีแยกข้อมูลไฟล์ ZIP โดยใช้ C# กับแอปพลิเคชัน .NET ของคุณ

หัวข้อต่อไปนี้ครอบคลุมด้านล่าง:

.NET API เพื่อแยกข้อมูลไฟล์ ZIP

GroupDocs.Parser ให้บริการโซลูชันการแยกวิเคราะห์เอกสารสำหรับนักพัฒนา ฉันจะใช้ .NET API เพื่อแยกข้อมูลไฟล์ ZIP ภายในตัวอย่าง C# ของบทความนี้ นอกจากนี้ API ยังอนุญาตให้แยกข้อความ รูปภาพ และข้อมูลเมตาจากรายการ [รูปแบบเอกสารที่รองรับ] มากมาย 5 เช่น เอกสารประมวลผลคำ งานนำเสนอ สเปรดชีต อีเมล ฐานข้อมูล eBook และอื่นๆ อีกมากมาย

คุณสามารถดาวน์โหลด DLLs หรือตัวติดตั้ง MSI ได้จาก ส่วนการดาวน์โหลด หรือติดตั้ง API โดยเพิ่มแพ็คเกจลงในแอปพลิเคชัน .NET ของคุณผ่าน NuGet

PM> Install-Package GroupDocs.Parser

วิธีการแยกข้อมูลไฟล์ ZIP ใน C#

GroupDocs.Parser for .NET รองรับการดึงข้อมูลจากไฟล์บีบอัดรูปแบบต่างๆ เช่น ZIP, RAR, TAR, BZIP2 และ GZIP หลังจากเรียกคอลเล็กชันของไฟล์จากไฟล์บีบอัดแล้ว คุณสามารถดึงข้อมูลประเภทใดก็ได้จากแต่ละไฟล์เพิ่มเติม

ขั้นตอนต่อไปนี้แสดงวิธีการแยกข้อมูลไฟล์ ZIP และดึงข้อความจากแต่ละไฟล์ที่อยู่ใน C#

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

ซอร์สโค้ดแสดงวิธีแยกข้อมูลไฟล์ ZIP โดยใช้ C# ในตัวอย่างนี้ ฉันจะแยกข้อความทั้งหมดออกจากไฟล์ทั้งหมดภายในไฟล์ ZIP

// แยกข้อมูลไฟล์เก็บถาวร ZIP ใน C#
using (Parser parser = new Parser(@"path/sample.zip"))
{
    // แยกไฟล์แนบออกจากคอนเทนเนอร์
    IEnumerable<ContainerItem> attachments = parser.GetContainer();

    // วนซ้ำการรวบรวมเอนทิตี
    foreach (ContainerItem item in attachments)
    {
        // พิมพ์ข้อมูลไฟล์
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + item.Name);
        Console.WriteLine("File Size: " + item.Size + " Bytes");
        Console.WriteLine("-----------------------------------");

        try
        {
            using (Parser attachmentParser = item.OpenParser())
            {
                // แยกข้อความเอนทิตี ZIP
                using (TextReader reader = attachmentParser.GetText())
                {
                    Console.WriteLine(reader == null ? "No text" : reader.ReadToEnd());
                }
            }
        }
        catch (UnsupportedDocumentFormatException)
        {
            Console.WriteLine("Isn't supported.");
        }
    }
}

ผลลัพธ์ของซอร์สโค้ดด้านบนแสดงข้อความที่ดึงมาจากไฟล์ PDF ไฟล์ใดไฟล์หนึ่งภายในไฟล์ ZIP

 -----------------------------------
 Name: sample.pdf
 File Size: 33370 Bytes
 -----------------------------------

 Heading

 This is the first paragraph of the sample document that contains some sample
 text, bulleted list, numbered list and more.

    •  Bullet Item 1
    •  Bullet Item 2
    •  Bullet Item 3
 
 This is the second paragraph of the sample document and after this, there is a
 numbered list: 

    1. Numbered Item 1
    2. Numbered Item 2
    3. Numbered Item 3 

รับใบอนุญาต API ฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อใช้ API โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

โดยสรุป คุณได้เรียนรู้วิธีแยกข้อมูล ZIP archives โดยใช้ C# ภายในแอปพลิเคชัน .NET ของคุณ โดยเฉพาะอย่างยิ่ง คุณสามารถดึงข้อมูลจากไฟล์ ZIP, RAR, TAR, GZIP และ BZIP ได้แล้ว คุณสามารถสร้างแอปพลิเคชัน .NET สำหรับการดึงข้อมูลของคุณเองสำหรับไฟล์บีบอัด สำหรับรายละเอียดเพิ่มเติมหรือเรียนรู้เกี่ยวกับ API โปรดไปที่ เอกสารประกอบ สำหรับข้อสงสัย ติดต่อเราผ่านทาง ฟอรัม

ดูสิ่งนี้ด้วย