ZIP、RAR、TAR、GZIP、BZIP2 等档案通常用于在单个容器中存储多个文件和文件夹。归档文件的另一个主要原因是使用压缩算法减小文件总大小。就像从各种文件格式的文档中解析和提取数据一样,您可以以相同的方式处理归档文件。您可以从存档中压缩的文件中提取文本、图像甚至元数据。在本文中,我们将讨论如何在您的 .NET 应用程序中使用 C# 提取 ZIP 存档数据。

以下主题涵盖以下内容:

.NET API 提取 ZIP 文件数据

GroupDocs.Parser 为开发者提供文档解析解决方案。我将在本文的 C# 示例中使用其 .NET API 来提取 ZIP 文件数据。 API 还允许从一长串 支持的文档格式 中提取文本、图像和元数据,例如文字处理文档、演示文稿、电子表格、电子邮件、数据库、电子书等。

您可以从 下载部分 下载 DLLsMSI 安装程序,或者通过 NuGet 将其包添加到您的 .NET 应用程序来安装 API。

PM> Install-Package GroupDocs.Parser

如何在 C# 中提取 ZIP 文件数据

GroupDocs.Parser for .NET 支持从各种压缩文件格式(如 ZIP、RAR、TAR、BZIP2 和 GZIP)中提取数据。从压缩文件中检索文件集合后,您可以进一步从每个文件中提取任何类型的数据。

以下步骤显示了如何提取 ZIP 文件数据并从 C# 中的每个包含的文件中检索文本。

  • 使用 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 的更多详细信息或了解,请访问 文档。如有疑问,请通过 论坛 联系我们。

也可以看看