Usuń pliki w archiwum ZIP w języku C# .NET

Podczas pracy z archiwami z poziomu aplikacji .NET może zaistnieć potrzeba manipulowania plikami w ZIP. W poprzednim poście widziałeś, jak dodawać pliki/foldery w archiwum ZIP. W tym artykule dowiesz się, jak programowo usuwać pliki w archiwach ZIP w języku C#. Więc zacznijmy.

C# .NET API do usuwania plików w archiwach ZIP

Aspose.ZIP for .NET to potężny interfejs API, który zapewnia szeroki zakres funkcji archiwizacji. Pozwala tworzyć i manipulować archiwami popularnych formatów, w tym ZIP, TAR, 7z i GZip. Użyjemy tego interfejsu API do dynamicznego usuwania plików w archiwach ZIP. Możesz zainstalować interfejs API z NuGet lub pobrać bibliotekę DLL i odwołać się do niej ręcznie.

PM> Install-Package Aspose.Zip 

Usuń pliki w archiwach ZIP w C#

Istnieją dwa sposoby usuwania plików w archiwum ZIP za pomocą Aspose.ZIP for .NET. Jeden używa indeksu pliku, podczas gdy drugi używa klasy ArchiveEntry. Zobaczmy, jak wykorzystać obie wyżej wymienione metody.

Usuń plik w ZIP za pomocą ArchiveEntry

Aspose.ZIP for .NET reprezentuje każdy plik/folder wewnątrz ZIP jako obiekt ArchiveEntry, a wszystkie pliki i foldery tworzą kolekcję obiektów ArchiveEntry. W ten sposób, aby usunąć plik z ZIP, możesz uzyskać dostęp do odpowiedniego obiektu ArchiveEntry i usunąć go z kolekcji. Poniżej przedstawiono kroki, aby usunąć plik z archiwum ZIP w języku C#.

Poniższy przykładowy kod pokazuje, jak usunąć pliki w archiwum ZIP w języku C#.

// Załaduj archiwum ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
    // Lista do przechowywania plików do usunięcia
    List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();

    // Zapętlaj wpisy ZIP
    foreach(ArchiveEntry entry in archive.Entries)
    {
        // Dodaj plik/folder do listy
        if(entry.Name.ToLower().Contains("source"))
        {
            entriesToDelete.Add(entry);
        }
    } 

    // Usuń wszystkie wymienione wpisy
    foreach(var entry in entriesToDelete)
    {
        archive.DeleteEntry(entry);
    }

    // Zapisz zaktualizowane archiwum
    archive.Save("Archives/updated-archive.zip");
}

Usuń plik w ZIP za pomocą indeksu

Możesz także usunąć wpisy ZIP, korzystając z ich indeksu. Poniżej przedstawiono kroki, aby usunąć plik/folder z archiwum ZIP przy użyciu jego indeksu.

Poniższy przykładowy kod C# pokazuje, jak usunąć plik z archiwum ZIP przy użyciu jego indeksu.

// Załaduj archiwum ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
    // Usuń plik według jego indeksu
    archive.DeleteEntry(0);

    // Zapisz zaktualizowane archiwum
    archive.Save("Archives/updated-archive.zip");
}

Uzyskaj bezpłatną licencję API

Możesz używać Aspose.ZIP for .NET bez ograniczeń ewaluacyjnych, otrzymując bezpłatną licencję tymczasową.

Wniosek

W tym artykule nauczyłeś się, jak usuwać pliki z archiwów ZIP w języku C#. Za pomocą próbek kodu widzieliśmy, jak usuwać pliki przy użyciu klasy ArchiveEntry lub indeksu. Jeśli chcesz dowiedzieć się więcej o Aspose.ZIP for .NET, możesz odwiedzić dokumentację. Możesz także zadawać pytania za pośrednictwem naszego forum.

Zobacz też