Ta bort filer i ett ZIP-arkiv i C# .NET

När du arbetar med arkiv från dina .NET-applikationer kan du behöva manipulera filer i en ZIP. I föregående inlägg har du sett hur du lägger till filer/mappar i ett ZIP-arkiv. I den här artikeln kommer du att lära dig hur du tar bort filer i ZIP-arkiven programmatiskt i C#. Så låt oss börja.

Ta bort filer i ZIP med C# - API-installation

Aspose.ZIP för .NET är ett kraftfullt API som ger ett brett utbud av arkiveringsfunktioner. Det låter dig skapa och manipulera arkiv av populära format inklusive ZIP, TAR, 7z och GZip. Vi kommer att använda detta API för att radera filerna i ZIP-arkiv dynamiskt. Du kan antingen installera API:t från NuGet eller ladda ner DLL:n och referera till den manuellt.

PM> Install-Package Aspose.Zip 

C# Ta bort filer i ett ZIP-arkiv

Det finns två sätt att ta bort filer i ett ZIP-arkiv med Aspose.ZIP för .NET. Den ena använder filens index medan den andra använder klassen ArchiveEntry. Låt oss se hur man använder båda de ovannämnda metoderna.

Ta bort en fil i ZIP med ArchiveEntry

Aspose.ZIP för .NET representerar varje fil/mapp i en ZIP som ett ArchiveEntry-objekt och alla filer och mappar utgör en samling av ArchiveEntry-objekt. För att ta bort en fil från ZIP kan du alltså komma åt och ta bort det relevanta ArchiveEntry-objektet från samlingen. Följande är stegen för att ta bort en fil från ett ZIP-arkiv i C#.

Följande kodexempel visar hur man tar bort filer i ett ZIP-arkiv i C#.

// Ladda ZIP-arkivet
using (var archive = new Archive("Archives/archive.zip"))
{
    // Lista för att behålla filer som ska raderas
    List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();

    // Gå igenom ZIP-poster
    foreach(ArchiveEntry entry in archive.Entries)
    {
        // Lägg till fil/mapp i listan
        if(entry.Name.ToLower().Contains("source"))
        {
            entriesToDelete.Add(entry);
        }
    } 

    // Ta bort alla listade poster
    foreach(var entry in entriesToDelete)
    {
        archive.DeleteEntry(entry);
    }

    // Spara uppdaterat arkiv
    archive.Save("Archives/updated-archive.zip");
}

C# Ta bort en fil i ZIP med hjälp av Index

Du kan också ta bort ZIP-posterna med hjälp av deras index. Följande är stegen för att ta bort en fil/mapp från ett ZIP-arkiv med hjälp av dess index.

Följande C#-kodexempel visar hur man tar bort en fil i ett ZIP-arkiv med hjälp av dess index.

// Ladda ZIP-arkivet
using (var archive = new Archive("Archives/archive.zip"))
{
    // Ta bort filen genom dess index
    archive.DeleteEntry(0);

    // Spara uppdaterat arkiv
    archive.Save("Archives/updated-archive.zip");
}

C# API för att ta bort filer i ZIP - Skaffa en gratis licens

Du kan ta bort filer i ZIP-arkiv utan utvärderingsbegränsningar genom att skaffa en gratis tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du tar bort filer från ZIP-arkiv i C#. Med hjälp av kodprover har vi sett hur man tar bort filer med hjälp av klassen ArchiveEntry eller indexet. Om du vill lära dig mer om Aspose.ZIP för .NET kan du besöka dokumentation. Du kan också ställa dina frågor via vårt forum.

Se även