Ändra zip-filer med Aspose.Zip för .NET
Introduktion
Zip-filer är avgörande för dataorganisation och komprimering, men hur ändrar du deras innehåll programmatiskt? Lösningen ligger i Aspose.Zip för .NET, ett robust bibliotek som förenklar zip-filmanipulation 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örutsättningar
Innan vi dyker in, se till att du har följande:
-
Aspose.Zip för .NET Library: Installera biblioteket i ditt projekt. Du kan ladda ner denhär.
-
Dokumentkatalog: Skapa en katalog för att lagra dina zip-filer. Ersätta
"Your Document Directory"
i koden med din faktiska sökväg.
Importera nödvändiga namnområden
Börja med att importera de nödvändiga namnrymden:
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 Outer Zip-filen
Börja med att öppna din huvudsakliga zip-fil (yttre zip):
string dataDir = "Your Data Directory";
using (Archive outer = new Archive(dataDir + "outer.zip"))
{
// Fortsätt för att identifiera inre zip-poster
}
Steg 2: Identifiera inre zip-poster
Identifiera och förbered sedan för att ta bort eventuella inre 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 inre 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 inre arkivposter
När du har samlat in posterna du behöver, ta bort de inre zip-posterna:
foreach (ArchiveEntry e in entriesToDelete)
{
outer.DeleteEntry(e);
}
Steg 4: Lägg till modifierade poster till Outer Zip
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
Slutligen, spara dina ändringar i en ny zip-fil:
outer.Save(dataDir + "flatten.zip");
Slutsats
Aspose.Zip för .NET ger ett kraftfullt och enkelt sätt att manipulera zip-filer programmatiskt. Den här handledningen behandlade att extrahera, ta bort och lägga till poster i en zip-fil, vilket illustrerar bibliotekets mångsidighet. Utforska olika scenarier och förbättra dina filmanipuleringsfärdigheter!
FAQ’s
Kan jag använda Aspose.Zip för .NET med andra programmeringsspråk?
Aspose.Zip är i första hand designad för .NET-applikationer, men Aspose erbjuder liknande bibliotek för olika programmeringsspråk.
Finns det en gratis testversion tillgänglig för Aspose.Zip för .NET?
Ja, en gratis testversion är tillgänglig för nedladdninghär.
Hur får jag support för Aspose.Zip för .NET?
BesökAspose.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å en tillfällig licenshär.
Var kan jag hitta dokumentationen för Aspose.Zip för .NET?
Den fullständiga dokumentationen finns tillgänglighär.