Introduktion
Zip-filer är viktiga för dataorganisation och komprimering, men hur modifierar man deras innehåll programmatiskt? Lösningen finns i Aspose.Zip för .NET, ett robust bibliotek som förenklar manipulation av zip-filer med C#. I den här handledningen guidar vi dig genom att extrahera, ta bort och lägga till poster i zip-filer steg för steg.
Förkunskapskrav
Innan vi dyker in, se till att du har följande:
-
Aspose.Zip för .NET-bibliotek: Installera biblioteket i ditt projekt. Du kan ladda ner det. här.
-
Dokumentkatalog: Skapa en katalog för att lagra dina zip-filer. Ersätt
"Your Document Directory"
i koden med din faktiska sökväg.
Importera nödvändiga namnrymder
Börja med att importera de namnrymder som krävs:
using Aspose.Zip;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
Steg 1: Öppna den yttre zip-filen
Börja med att öppna din huvudsakliga zip-fil (yttre zip-fil):
string dataDir = "Your Data Directory";
using (Archive outer = new Archive(dataDir + "outer.zip"))
{
// Fortsätt med att identifiera inre postnummerposter
}
Steg 2: Identifiera inre postnummerposter
Identifiera sedan och förbered dig för att ta bort eventuella interna zip-filer:
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);
// Extrahera interna poster
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);
}
}
}
}
}
Steg 3: Ta bort poster i internt arkiv
När du har samlat in de poster du behöver, radera de inre postnumren:
foreach (ArchiveEntry e in entriesToDelete)
{
outer.DeleteEntry(e);
}
Steg 4: Lägg till modifierade poster i yttre postnummer
Nu kan du lägga till de nyligen extraherade posterna tillbaka till din yttre zip-fil:
for (int i = 0; i < namesToInsert.Count; i++)
{
outer.CreateEntry(namesToInsert[i], contentToInsert[i]);
}
Steg 5: Spara den modifierade zip-filen
Spara slutligen dina ändringar i en ny zip-fil:
outer.Save(dataDir + "flatten.zip");
Slutsats
Aspose.Zip för .NET erbjuder ett kraftfullt och enkelt sätt att manipulera zip-filer programmatiskt. Den här handledningen behandlade hur man extraherar, tar bort och lägger till poster i en zip-fil, vilket illustrerar bibliotekets mångsidighet. Utforska olika scenarier och förbättra dina filhanteringsfärdigheter!
Vanliga frågor
Kan jag använda Aspose.Zip för .NET med andra programmeringsspråk?
Aspose.Zip är främst utformat för .NET-applikationer, men Aspose erbjuder liknande bibliotek för olika programmeringsspråk.
Finns det en gratis testversion av Aspose.Zip för .NET?
Ja, en gratis provversion finns tillgänglig för nedladdning här.
Hur får jag stöd för Aspose.Zip för .NET?
Besök Aspose.Zip-forum för stöd och diskussioner.
Kan jag köpa en tillfällig licens för Aspose.Zip för .NET?
Ja, du kan få ett tillfälligt körkort här.
Var kan jag hitta dokumentationen för Aspose.Zip för .NET?
Den fullständiga dokumentationen finns tillgänglig här.