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.
- .NET API för att skapa självextraherande arkiv
- Skapa ett självextraherande arkiv i C#
- Exekvera självextraherande arkiv från kommandoraden
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#.
- Skapa först ett nytt FileStream-objekt för arkivering.
- Skapa sedan ett objekt av klassen Arkiv.
- Lägg till filer i arkivet med metoden Archive.CreateEntry(sträng, sträng).
- Skapa ett objekt av klassen SelfExtractorOptions för att ange alternativ för självextraherande arkiv.
- Ställ in alternativ som titel, ikon, etc.
- Slutligen sparar du den självextraherande arkivfilen med metoden Archive.Save(FileStream, new ArchiveSaveOptions()).
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.