Create a Flat ZIP Archive in C#

導入

このガイドは、すべての 内部の ZIP ファイルを単一のアーカイブに抽出することによって ZIP 構造をフラットするプロセスを通過します を使用して Aspose.ZIP for .NET 。

なぜFlat ZIPを作るのか?

フラット ZIP アーカイブを作成するには、いくつかの利点があります:

  • ZIPファイル管理を簡素化する:複数のファイルを処理する際の複雑さを減らす。
  • すべての ZIP コンテンツを 1 つのアーカイブに抽出します: ファイルを強化し、アクセスが容易になります。
  • redundant フォルダー構造を削減する: ファイルの組織をストリーミングする。

テーブルコンテンツ

1. ZIP アーカイブ処理を C# {#section1} で設定する

効率的に処理するために nested ZIP ファイル, we will use Aspose.ZIP for .NET. この強力なライブラリは、以下を提供します。

  • 自動ZIP抽出および再圧縮
  • 複数のアーカイブ形式のサポート:ZIP、TAR、GZip、およびその他。
  • 大規模なファイルの効率的な処理

インストール

NuGet を通じて簡単に図書館をインストールできます:

PM> Install-Package Aspose.Zip

代わりに、DLLをダウンロードできます。 Aspose ダウンロードページ.

2. フラット 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

コード例

以下は、Nested 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#アーカイブで柔らかい作業流を確保します。

3. Flattened ZIP ファイルを保存する

注入された ZIP コンテンツを抽出した後、以下のコードラインを使用して注入された ZIP ファイルを保存します。

parentZip.Save("flattened.zip");

これにより、単一のZIPアーカイブを無しに持っていることを保証し、C# Zip Compressionテクニックを通じてファイル管理をより容易にします。

4. バッチ 処理 複数の 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 ガイド ** を参照してください. 質問がある場合は、コミュニティと関わることを自由に感じてください. ** アスポス フォーラム

6.結論と追加資源

概要

このガイドでは、以下をカバーしています。

  • C#でZIPファイルをフラットする方法
  • ZIPアーカイブの抽出
  • 最後のZIPアーカイブを保存する
  • 複数の ZIP ファイルを同時に処理する

Aspose.ZIP for .NET を使用すると、アプリケーション内の ZIP ファイルを効率的に 抽出および管理できます。

追加リソース

開発者が理解を向上させたい場合は、これらのテーマを検討してください。

  • C# Create Zip Archive: あなたの C# アプリケーションで ZIP ファイルを作成するためのさまざまな方法を探索します。
  • ZIP ファイルを作成する C# .NET コア: .Net Core に焦点を当て、 ZIP のファイル作成のための最良の実践を学びます。
  • C# ZIPからファイルを抽出する:ZIPアーカイブから特定のファイルを取り出すためのステップアップ指示。
  • C# Decompress ZIP: C#を使用してZIPファイルをデコンプレッシャーするための詳細なガイド
  • C#で .NET で Zip ファイルを表示する方法: .Net と C# を使用して zipping フィルムの完全なウォークトゥー。
  • C# ZipArchive Extract to Directory:効率的なファイル抽出にZiparchiveを使用する方法を発見します。
  • C# Zipping ファイル: パフォーマンスと便利性を向上させるために C# でファイルを zippingする方法を探索します。
  • .NET Core Create Zip File: .NET コアと C# を使用して ZIP ファイルを作成するための詳細な見方。
  • C# Zip: C# で ZIP ファイルを効率的に処理することを学びます。
  • C# Zip サンプル:開発プロセスを簡素化するために C# で zipping ファイルの実用的な例を検討します。
  • .NET Core Zip: .NET コア アプリケーションで ZIP ファイルを使用するための最良の実践。
  • C# Open ZIP:ZIPファイルを効率的に開き、読み取る方法を理解します。
  • C# ZIPからファイルを読み取る:ZIPファイルに保存されている特定のファイルを読むためのテクニック。
  • C# Zip Lists:アプリケーションでファイルのリストをシンプルにジップする方法を知る。
  • C# Zipping ファイル: ジッピングファイルの方法を詳しく見る。
  • .NET Core Zip ファイル管理の概要を参照してください。
  • C#アーカイブ: 総合的な ZIP 処理のための Archive クラスを活用する方法を学びます。

More in this category