Các kho lưu trữ như ZIP, RAR, TAR, GZIP, BZIP2 thường được sử dụng để lưu trữ nhiều tệp và thư mục trong một vùng chứa. Một lý do chính khác cho các tệp lưu trữ là giảm tổng kích thước tệp bằng thuật toán nén. Giống như phân tích cú pháp và trích xuất dữ liệu từ các tài liệu có định dạng tệp khác nhau, bạn có thể xử lý các tệp lưu trữ theo cùng một cách. Bạn có thể trích xuất văn bản, hình ảnh và thậm chí cả siêu dữ liệu từ các tệp được nén trong kho lưu trữ. Trong bài viết này, chúng tôi sẽ thảo luận về cách trích xuất dữ liệu lưu trữ ZIP bằng C# với các ứng dụng .NET của bạn.

Các chủ đề sau đây được đề cập dưới đây:

.NET API để giải nén dữ liệu tệp ZIP

GroupDocs.Parser cung cấp giải pháp phân tích cú pháp tài liệu cho nhà phát triển. Tôi sẽ sử dụng .NET API để trích xuất dữ liệu tệp ZIP trong các ví dụ C# của bài viết này. API còn cho phép trích xuất văn bản, hình ảnh và siêu dữ liệu từ một danh sách dài các định dạng tài liệu được hỗ trợ như tài liệu soạn thảo văn bản, bản trình bày, bảng tính, email, cơ sở dữ liệu, sách điện tử, v.v.

Bạn có thể tải xuống trình cài đặt DLL hoặc MSI từ phần tải xuống hoặc cài đặt API bằng cách thêm gói của nó vào ứng dụng .NET của bạn thông qua NuGet.

PM> Install-Package GroupDocs.Parser

Cách trích xuất dữ liệu tệp ZIP trong C#

GroupDocs.Parser for .NET hỗ trợ trích xuất dữ liệu từ nhiều định dạng tệp nén khác nhau như ZIP, RAR, TAR, BZIP2 và GZIP. Sau khi truy xuất tập hợp các tệp từ tệp nén, bạn có thể trích xuất thêm bất kỳ loại dữ liệu nào từ mỗi tệp.

Các bước sau đây cho biết cách trích xuất dữ liệu tệp ZIP và truy xuất văn bản từ mỗi tệp đính kèm trong C#.

  • Tải tệp lưu trữ ZIP bằng lớp Parser.
  • Lấy tệp đính kèm bằng phương pháp GetContainer
  • Duyệt qua bộ sưu tập các tệp đính kèm.
  • Đối với mỗi phần đính kèm, bạn có thể lấy loại dữ liệu khác nhau của nó bằng cách sử dụng các phương thức tương ứng của lớp Trình phân tích cú pháp.

Mã nguồn cho biết cách trích xuất dữ liệu tệp ZIP bằng C#. Trong ví dụ này, tôi sẽ trích xuất toàn bộ văn bản từ tất cả các tệp trong kho lưu trữ ZIP.

// Trích xuất dữ liệu lưu trữ ZIP trong C#
using (Parser parser = new Parser(@"path/sample.zip"))
{
    // Trích xuất tệp đính kèm từ vùng chứa
    IEnumerable<ContainerItem> attachments = parser.GetContainer();

    // Lặp lại bộ sưu tập các thực thể
    foreach (ContainerItem item in attachments)
    {
        // In THÔNG TIN TẬP TIN
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + item.Name);
        Console.WriteLine("File Size: " + item.Size + " Bytes");
        Console.WriteLine("-----------------------------------");

        try
        {
            using (Parser attachmentParser = item.OpenParser())
            {
                // Trích xuất văn bản thực thể ZIP
                using (TextReader reader = attachmentParser.GetText())
                {
                    Console.WriteLine(reader == null ? "No text" : reader.ReadToEnd());
                }
            }
        }
        catch (UnsupportedDocumentFormatException)
        {
            Console.WriteLine("Isn't supported.");
        }
    }
}

Đầu ra của mã nguồn ở trên hiển thị văn bản được lấy từ một trong các tệp PDF trong tệp 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 

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng API mà không bị giới hạn đánh giá.

Sự kết luận

Tóm lại, bạn đã học cách trích xuất dữ liệu lưu trữ ZIP bằng C# trong ứng dụng .NET của mình. Cụ thể hơn, giờ đây bạn có thể trích xuất dữ liệu từ các tệp ZIP, RAR, TAR, GZIP và BZIP. Bạn thậm chí có thể xây dựng ứng dụng .NET trích xuất dữ liệu của riêng mình cho các tệp nén. Để biết thêm chi tiết hoặc tìm hiểu về API, hãy truy cập tài liệu. Nếu có thắc mắc, hãy liên hệ với chúng tôi qua diễn đàn.

Xem thêm