Create a Flat ZIP Archive in C#

引入

管理 ZIP 文件可能具有挑战性,特别是当它们包含 nested 档案. 此指南将通过通过将所有 内部 ZIP 档案 提取到一个单一档案 使用 Aspose.ZIP for .NET 的过程来引导您。

为什么要创建平板ZIP?

创建平板ZIP档案提供了几个好处:

  • 简化ZIP文件管理:在处理多个文件时减少复杂性。
  • 将所有粘贴的 ZIP 内容提取到一个档案: 将文件集成,以便更容易访问。
  • 减少压缩文件夹结构:流动文件的组织。

内容表

1. 设置 ZIP 档案处理在 C#

要有效处理 nested ZIP 档案,我们将使用 Aspose.ZIP for .NET

  • 自动ZIP提取和重新压缩
  • 支持多个档案格式:ZIP、TAR、GZip等。
  • 大档案的有效处理

安装

您可以通过 NuGet 轻松安装图书馆:

PM> Install-Package Aspose.Zip

否则,您可以从 DLL 下载 Aspose 下载页面.

步骤创建一个平板ZIP档案

考虑下列 nested ZIP 结构:

parent.zip
 ├ first.txt
 ├ inner.zip
 │ ├ file1.exe
 │ └ data.bin
 └ picture.gif

浮动后,所有内部的 ZIP 内容将集成到主 ZIP:

flattened.zip
 ├ first.txt
 ├ picture.gif
 ├ file1.exe
 └ data.bin

代码例子

下面是你可以自动提取的ZIP文件的方式:

// Load the parent ZIP file
using (Archive parentZip = new Archive("parent.zip"))
{
    List<ArchiveEntry> toDelete = new List<ArchiveEntry>();
    List<string> newEntryNames = new List<string>();
    List<MemoryStream> newStreams = new List<MemoryStream>();

    foreach (ArchiveEntry entry in parentZip.Entries)
    {
        if (entry.Name.EndsWith(".zip", StringComparison.OrdinalIgnoreCase))
        {
            toDelete.Add(entry);
            using (MemoryStream zipStream = new MemoryStream())
            {
                entry.Open().CopyTo(zipStream);
                zipStream.Position = 0;
                using (Archive innerZip = new Archive(zipStream))
                {
                    foreach (ArchiveEntry innerEntry in innerZip.Entries)
                    {
                        using (MemoryStream entryStream = new MemoryStream())
                        {
                            innerEntry.Open().CopyTo(entryStream);
                            newEntryNames.Add(innerEntry.Name);
                            newStreams.Add(entryStream);
                        }
                    }
                }
            }
        }
    }

    foreach (var entry in toDelete)
        parentZip.DeleteEntry(entry);

    for (int i = 0; i < newEntryNames.Count; i++)
        parentZip.CreateEntry(newEntryNames[i], newStreams[i]);

    parentZip.Save("flattened.zip");
}

这种方法有效地 自动化粘贴的 ZIP 文件提取,确保一个顺利的工作流与 C# Archive 功能。

3. 保存平板 ZIP 文件

一旦您提取了粘贴的 ZIP 内容,请使用下列代码行保存粘贴的 ZIP 文件:

parentZip.Save("flattened.zip");

这确保您有一个 单一的 ZIP 存档,没有粘贴文件夹,通过 C# Zip Compression 技术更容易管理文件。

4. Batch 处理 多 ZIP 档案

如果您需要在特定文件夹中找到 平板多个 ZIP 档案,您可以使用以下代码剪辑:

string[] files = Directory.GetFiles("zip_folder", "*.zip");
foreach (string file in files)
{
    using (Archive archive = new Archive(file))
    {
        archive.ExtractToDirectory("output_folder");
    }
}

此方法允许 自动大批 ZIP 处理,同时有效处理 C# Zip 文件 同时节省时间和精力。

5、获得免费的API许可证

若要解锁 Aspose.ZIP 的完整功能,您可以申请 (免费临时许可证)(https://purchase.aspose.com/temporary-license)。

要了解完整的文档,请参阅 Aspose.ZIP 指南. 如果您有任何疑问,您可以自由地与社区联系在 [阿斯波斯论坛 ](https://forum.aspo.net/

结论和额外资源

总结

在此指南中,我们涵盖了:

  • 如何在 C# 中插入 ZIP 文件
  • 提取 ZIP 存档
  • 保存最终 ZIP 存档
  • 同时处理多个 ZIP 文件

使用 Aspose.ZIP for .NET,您可以在您的应用程序中有效地 提取和管理 ZIP 档案。

其他资源

对于开发人员想要提高他们的理解,考虑这些主题:

  • C# 创建 Zip Archive: 探索您在 C # 应用程序中创造 ZIP 文件的各种方法。
  • 创建 ZIP 文件 C# .NET Core:专注于 .Net Core,学习ZIP文件创作的最佳做法。
  • C# 从 ZIP 提取文件:步骤指示从 Zip 档案中获取特定文件。
  • C# Decompress ZIP:使用 C# 解压ZIP文件的详细指南。
  • 如何在 .NET 中的 Zip 文件与 C#: 一个完整的步行路径在使用 .Net 和 C# 的 zipping 檔案。
  • C# ZipArchive Extract to Directory: 探索如何使用Ziparchive以有效地提取文件。
  • C# Zipping 文件:探索在 C# 中将文件粘贴的方法,以提高性能和方便性。
  • ** .NET Core 创建 Zip 文件**: 详细查看使用 .NET 核心和 C# 的 ZIP 檔案的創建。
  • C# Zip:了解如何在 C# 中有效处理 ZIP 文件。
  • C# Zip Example: 查看 C# 中的 zipping 文件的实用例子,以简化您的开发过程。
  • .NET Core Zip:在 .Net Core 应用程序中使用 ZIP 文件的最佳做法。
  • C# Open ZIP:了解如何有效地打开和阅读ZIP文件。
  • C# 从 ZIP 阅读文件:在 Zip 档案中存储的特定文件的阅读技术。
  • C# Zip Lists:知道如何在应用程序中无缝地将文件列表切割。
  • C# Zipping 文件: 更仔细地查看 zipping 的文件方法。
  • ** .NET Core Zip**: 引入 .net 核心 ZIP 文件管理。
  • C# Archive:学习如何利用档案类,以便全面处理ZIP。

More in this category