Wstęp

Pliki ZIP są niezbędne do organizacji i kompresji danych, ale jak programowo modyfikować ich zawartość? Rozwiązaniem jest Aspose.Zip dla .NET, rozbudowana biblioteka, która upraszcza zarządzanie plikami ZIP za pomocą języka C#. W tym samouczku krok po kroku przeprowadzimy Cię przez proces wyodrębniania, usuwania i dodawania wpisów do plików ZIP.

Wymagania wstępne

Zanim przejdziemy do konkretów, upewnij się, że masz następujące rzeczy:

  1. Aspose.Zip dla biblioteki .NET: Zainstaluj bibliotekę w swoim projekcie. Możesz ją pobrać. Tutaj.

  2. Katalog dokumentów: Skonfiguruj katalog do przechowywania plików ZIP. Zastąp "Your Document Directory" w kodzie ze swoją rzeczywistą ścieżką.

Importuj niezbędne przestrzenie nazw

Zacznij od zaimportowania wymaganych przestrzeni nazw:

using Aspose.Zip;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

Krok 1: Otwórz zewnętrzny plik ZIP

Zacznij od otwarcia głównego pliku zip (zewnętrznego pliku zip):

string dataDir = "Your Data Directory";
using (Archive outer = new Archive(dataDir + "outer.zip"))
{
    // Przejdź do identyfikacji wewnętrznych wpisów kodów pocztowych
}

Krok 2: Zidentyfikuj wewnętrzne wpisy kodów pocztowych

Następnie zidentyfikuj i przygotuj się do usunięcia wszelkich wewnętrznych plików zip:

List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();
List<string> namesToInsert = new List<string>();
List<MemoryStream> contentToInsert = new List<MemoryStream>();

foreach (ArchiveEntry entry in outer.Entries)
{
    if (entry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase))
    {
        entriesToDelete.Add(entry);
        
        using (MemoryStream innerCompressed = new MemoryStream())
        {
            entry.Open().CopyTo(innerCompressed);
            
            // Wyodrębnij wpisy wewnętrzne
            using (Archive inner = new Archive(innerCompressed))
            {
                foreach (ArchiveEntry ie in inner.Entries)
                {
                    namesToInsert.Add(ie.Name);
                    MemoryStream content = new MemoryStream();
                    ie.Open().CopyTo(content);
                    contentToInsert.Add(content);
                }
            }
        }
    }
}

Krok 3: Usuń wpisy z archiwum wewnętrznego

Po zebraniu potrzebnych wpisów usuń wewnętrzne wpisy z pliku ZIP:

foreach (ArchiveEntry e in entriesToDelete)
{
    outer.DeleteEntry(e);
}

Krok 4: Dodaj zmodyfikowane wpisy do zewnętrznego pliku ZIP

Teraz możesz dodać nowo wyodrębnione wpisy z powrotem do zewnętrznego pliku zip:

for (int i = 0; i < namesToInsert.Count; i++)
{
    outer.CreateEntry(namesToInsert[i], contentToInsert[i]);
}

Krok 5: Zapisz zmodyfikowany plik ZIP

Na koniec zapisz zmiany w nowym pliku zip:

outer.Save(dataDir + "flatten.zip");

Wniosek

Aspose.Zip dla .NET oferuje potężny i prosty sposób programistycznego zarządzania plikami ZIP. Ten samouczek omawiał rozpakowywanie, usuwanie i dodawanie wpisów do pliku ZIP, ilustrując wszechstronność biblioteki. Poznaj różne scenariusze i doskonal swoje umiejętności zarządzania plikami!

Najczęściej zadawane pytania

Czy mogę używać Aspose.Zip dla .NET z innymi językami programowania?

Aspose.Zip jest przeznaczony przede wszystkim dla aplikacji .NET, ale Aspose oferuje podobne biblioteki dla różnych języków programowania.

Czy jest dostępna bezpłatna wersja próbna Aspose.Zip dla .NET?

Tak, bezpłatna wersja próbna jest dostępna do pobrania Tutaj.

Jak uzyskać pomoc techniczną dotyczącą Aspose.Zip dla .NET?

Odwiedź Forum Aspose.Zip w celu uzyskania wsparcia i dyskusji.

Czy mogę kupić tymczasową licencję Aspose.Zip dla .NET?

Tak, możesz uzyskać tymczasową licencję Tutaj.

Gdzie mogę znaleźć dokumentację Aspose.Zip dla .NET?

Pełna dokumentacja jest dostępna Tutaj.