ZIP、RAR、TAR、GZIP、BZIP2 等壓縮文件通常用於在單個容器中存儲多個文件和文件夾。歸檔文件的另一個主要原因是使用壓縮算法減少總文件大小。就像從各種文件格式的文檔中解析和提取數據一樣,您可以以同樣的方式對待歸檔文件。您可以從存檔中壓縮的文件中提取文本、圖像甚至元數據。在本文中,我們將討論如何通過 .NET 應用程序使用 C# 提取 ZIP 存檔數據。

以下主題涵蓋如下:

用於提取 ZIP 文件數據的 .NET API

GroupDocs.Parser 為開發者提供文檔解析解決方案。我將在本文的 C# 示例中使用其 .NET API 提取 ZIP 文件數據。 API 還允許從一長串支持的文檔格式 中提取文本、圖像和元數據,例如文字處理文檔、演示文稿、電子表格、電子郵件、數據庫、電子書等。

您可以從 下載部分 下載 DLL 或 MSI 安裝程序,或者通過 NuGet 將其包添加到您的 .NET 應用程序來安裝 API。

PM> Install-Package GroupDocs.Parser

如何在 C# 中提取 ZIP 文件數據

GroupDocs.Parser for .NET 支持從各種壓縮文件格式(如 ZIP、RAR、TAR、BZIP2 和 GZIP)中提取數據。從壓縮文件中檢索文件集合後,您可以進一步從每個文件中提取任何類型的數據。

以下步驟顯示如何在 C# 中提取 ZIP 文件數據並從每個封閉文件中檢索文本。

  • 使用 Parser 類加載 ZIP 存檔。
  • 使用 GetContainer 方法獲取附件
  • 遍歷附件集合。
  • 對於每個附件,您可以使用 Parser 類的相應方法獲取其不同類型的數據。

源代碼顯示瞭如何使用 C# 提取 ZIP 文件數據。在此示例中,我將從 ZIP 存檔中的所有文件中提取整個文本。

// 在 C# 中提取 ZIP 存檔數據
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.");
        }
    }
}

上述源代碼的輸出顯示了從 ZIP 文件中的一個 PDF 文件中檢索到的文本。

 -----------------------------------
 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。

結論

總而言之,您學習瞭如何在 .NET 應用程序中使用 C# 提取 ZIP 存檔數據。更具體地說,您現在可以從 ZIP、RAR、TAR、GZIP 和 BZIP 文件中提取數據。您甚至可以為壓縮文件構建自己的數據提取 .NET 應用程序。有關更多詳細信息或了解 API,請訪問 文檔。如有疑問,請通過論壇 聯繫我們。

也可以看看