Ä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:

  1. Aspose.Zip för .NET Library: Installera biblioteket i ditt projekt. Du kan ladda ner denhär.

  2. 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.