Create a Flat ZIP Archive in C#

Wprowadzenie

Zarządzanie plikami ZIP może być trudne, zwłaszcza gdy zawierają one archiwum nested. Ten przewodnik przejdzie przez proces flattening struktur ZIP poprzez ekstrakcję wszystkich internych archiwum ZIP do jednego archiwum za pomocą Aspose.ZIP dla .NET.

Dlaczego warto stworzyć płaski ZIP?

Tworzenie płaskiego archiwum ZIP oferuje kilka zalet:

  • Ułatwia zarządzanie plikami ZIP: Zmniejsza złożoność podczas obsługi wielu plików.
  • Wprowadza wszystkie zawartości ZIP w jednym archiwum: Konsoliduje pliki w celu ułatwienia dostępu.
  • Reduces redundant folder structures: Streamlines organizacji plików.

Tabela zawartości

1. ustawienie przetwarzania archiwów ZIP w C#

Aby skutecznie przetwarzać nested ZIP archiwum, będziemy korzystać z [Aspose.ZIP dla .NET](https://products.aspose.net/zip:

  • Automatyczna ekstrakcja ZIP i ponowna kompresja.
  • Wsparcie dla wielu formatów archiwów: ZIP, TAR, GZip i więcej.
  • Efektywne przetwarzanie dużych archiwów.

Instalacja

Bibliotekę można łatwo zainstalować za pośrednictwem NuGet:

PM> Install-Package Aspose.Zip

Alternatywnie, można pobrać DLL z Aspose Downloads strona.

Krok do tworzenia płaskiego archiwum ZIP

Zastanów się nad następującą strukturą nested ZIP:

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

Po zapłaceniu wszystkie wewnętrzne treści ZIP zostaną skonsolidowane w rodzimym ZIP:

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

Kod przykładowy

Oto, jak można zautomatyzować ekstrakcję plików 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");
}

Metoda ta skutecznie automatyzuje ekstrakcję plików ZIP, zapewniając płynny przepływ pracy z funkcjami C# Archive.

Przechowywanie pliku Flattened ZIP

Po wyodrębnieniu zawartości ZIP, przechowuj plik ZIP za pomocą następującej linii kodu:

parentZip.Save("flattened.zip");

Zapewnia to, że posiadasz jednolity archiwum ZIP bez przesyłanych folderów, co ułatwia zarządzanie plikami za pośrednictwem C# Zip Compression technik.

4.Batch Przetwarzanie Multiple ZIP Archiwum

Jeśli potrzebujesz płaskich wielu archiwów ZIP znajdujących się w określonym folderze, możesz użyć następującego skrótu kodu:

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

Ta metoda umożliwia automatyczne przetwarzanie ZIP w dużej ilości, oszczędzając czas i wysiłek podczas skutecznego obsługi plików C# Zip.

Zdobądź darmową licencję API

Aby odblokować pełne funkcje Aspose.ZIP, możesz poprosić o bezpłatną licencję tymczasową.

Aby uzyskać pełną dokumentację, odwiedź Aspose.ZIP Guide ** . Jeśli masz jakiekolwiek pytania, czuj się wolny do współpracy z społecznością na ** [Forum Aspose]1eeb68bb5fc/).

Konkluzje i dodatkowe zasoby

Podsumowanie

W tym przewodniku obejmujemy:

  • Jak włączyć pliki ZIP w C#
  • Wyciąganie archiwów ZIP
  • Zachowaj ostatni archiwum ZIP
  • Przetwarzanie wielu plików ZIP naraz

Dzięki Aspose.ZIP dla .NET możesz efektywnie ekstraktować i zarządzać archiwami ZIP w swoich aplikacjach!

Dodatkowe zasoby

Dla deweloperów, którzy chcą poprawić swoje zrozumienie, zastanów się nad tymi tematami:

  • C# Create Zip Archive: Odkryj różne metody tworzenia plików ZIP w aplikacjach C.
  • Stwórz plik ZIP C# .NET Core: Skup się na .NET Core, dowiedzieć się najlepszych praktyk w tworzeniu pliku zIP.
  • C# Ekstrakcja plików z ZIP: instrukcje krok po kroku dotyczące ekstrakcji określonego pliku z archiwów Zip.
  • C# Decompress ZIP: Szczegółowy przewodnik dotyczący dekompresji plików zIP za pomocą C#.
  • Jak Zip pliki w .NET z C#: Pełny przebieg na plikach z zippingu za pomocą .NET i C#.
  • C# ZipArchive Extract to Directory: Dowiedz się, jak korzystać z Archiwum do efektywnego ekstrakcji plików.
  • C# Zipping Files: Odkryj metody zipowania plików w C# w celu poprawy wydajności i wygody.
  • .NET Core Create Zip File: Szczegółowy przegląd tworzenia plików ZIP za pomocą .NET Core i C#.
  • C# Zip: Dowiedz się, jak skutecznie obsługiwać pliki ZIP w C#.
  • C# Zip Example: Przegląd praktycznych przykładów plików zipping w C# w celu upraszczania procesu rozwoju.
  • .NET Core Zip: Najlepsze praktyki pracy z plikami ZIP w aplikacjach .NET core.
  • C# Open ZIP: Zrozum, jak skutecznie otworzyć i czytać pliki zIP.
  • C# Przeczytaj pliki z ZIP: Techniki do odczytu konkretnych plików przechowywanych w archiwach zIP.
  • C# Zip Lists: Dowiedz się, jak bezprzewodowo zapiąć listy plików w aplikacjach.
  • C# Zipping Files: Spójrz bliżej na metody zippingu plików.
  • .NET Core Zip: Wpływy do zarządzania plikami .NET core ZIP.
  • C# Archive: Naucz się wykorzystywać klasę Archiwum do kompleksowego zarządzania ZIP.

More in this category