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#.
- Ladda ZIP-arkivet med klassen Arkiv.
- Gå igenom posterna i samlingen Archive.Entries.
- Filtrera önskade filer/mappar och lägg till dem i en lista.
- Ta bort varje post i listan med metoden Archive.DeleteEntry(ArchiveEntry).
- Spara det uppdaterade ZIP-arkivet med metoden Archive.Save(string).
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.
- Ladda ZIP-arkivet med klassen Arkiv.
- Ta bort filen genom att ange indexet i metoden Archive.DeleteEntry(int).
- Spara det uppdaterade ZIP-arkivet med metoden Archive.Save(string).
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.