Skapa körbart självextraherande arkiv i C#

Ett självextraherande arkiv(SFX eller SEA) är en speciell typ av fil som innehåller komprimerad data tillsammans med körbara instruktioner. Detta arkiv har förmågan att extrahera filerna som det innehåller av sig själv. Därför behöver du inte någon specifik extraherings- eller dekomprimeringsapplikation för att öppna självextraherande arkiv. I den här artikeln kommer du att lära dig hur du skapar körbara självextraherande arkiv i C# från dina .NET-applikationer.

C# .NET API för att skapa självextraherande arkiv

För att skapa självextraherande arkiv kommer vi att använda Aspose.ZIP för .NET. Det är ett kraftfullt och funktionsrikt API som låter dig automatisera arkiveringsfunktionerna i .NET-applikationer ganska enkelt. Dessutom stöder den en mängd populära arkivformat som ZIP, TAR, etc. Du kan ladda ner API:s DLL eller installera den med NuGet.

PM> Install-Package Aspose.Zip 

Skapa ett självextraherande arkiv i C#

Låt oss börja skapa ett självextraherande arkiv förutsatt att du har installerat Aspose.ZIP för .NET. Eftersom detta kommer att vara ett körbart arkiv kommer dess tillägg att vara .exe. Följande är stegen för att skapa ett körbart självextraherande arkiv i C#.

Följande kodexempel visar hur man skapar ett körbart självextraherande arkiv i .NET.

// Skapa FileStream för att spara SFX-arkiv
using (FileStream zipFile = File.Open("Archives/archive.exe", FileMode.Create))
{
    // Skapa ett nytt arkiv
    using (var archive = new Archive())
    {
        // Lägg till filer/mappar till arkivet
        archive.CreateEntry("SourceFile1.txt", "Archives/SourceFile1.txt");

        // Skapa och ställ in alternativ för SFX-arkiv
        var sfxOptions = new SelfExtractorOptions()
        {
            ExtractorTitle = "Extractor",
            CloseWindowOnExtraction = true, 
        };

        // Skapa SFX-arkiv
        archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
    }
}

Exekvera självextraherande arkiv med kommandoraden

Det självextraherande arkivet som vi skapade i föregående avsnitt kan extraheras genom att dubbelklicka på det. Men om du vill använda kommandoraden kan du extrahera arkivet med följande kommando.

C:>archive.exe -autoExtract 

Här är -autoExtract det primära alternativet som låter dig extrahera arkivet. Om arkivet är lösenordsskyddat kan du ange lösenordet med alternativet -password, som visas i följande kommando.

C:>archive.exe -autoExtract -password:T0p$ecret

Den fullständiga listan över kommandon för att arbeta med ett körbart självextraherande arkiv finns i denna artikel.

Skaffa en gratis API-licens

Du kan använda Aspose.ZIP för .NET 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 skapar självextraherande arkiv (SFX eller SEA) i C#. Vidare har vi diskuterat hur man extraherar ett självextraherande arkiv med hjälp av kommandoraden. Du kan helt enkelt installera Aspose.ZIP för .NET och bädda in det medföljande kodexemplet i dina .NET-applikationer. Dessutom kan du utforska mer om Aspose.ZIP för .NET med hjälp av dess dokumentation. Du kan också skicka dina frågor till vårt forum.

Se även