Samorozbalovací archiv(SFX nebo SEA) je speciální typ souboru, který obsahuje komprimovaná data spolu se spustitelnými instrukcemi. Tento archiv má schopnost samostatně extrahovat soubory, které obsahuje. K otevření samorozbalovacích archivů tedy nepotřebujete žádnou konkrétní extrakční nebo dekomprimační aplikaci. V tomto článku se dozvíte, jak vytvořit spustitelné samorozbalovací archivy v C# z vašich aplikací .NET.
- .NET API pro vytváření samorozbalovacích archivů
- Vytvořte samorozbalovací archiv v C#
- Spouštění samorozbalovacích archivů z příkazového řádku
C# .NET API pro vytváření samorozbalovacích archivů
K vytvoření samorozbalovacích archivů použijeme Aspose.ZIP for .NET. Jedná se o výkonné a na funkce bohaté API, které vám umožňuje poměrně snadno automatizovat archivační funkce v aplikacích .NET. Navíc podporuje řadu oblíbených archivních formátů, jako je ZIP, TAR atd. Můžete si stáhnout DLL API nebo ji nainstalovat pomocí NuGet.
PM> Install-Package Aspose.Zip
Vytvořte samorozbalovací archiv v C#
Začněme vytvářet samorozbalovací archiv za předpokladu, že jste nainstalovali Aspose.ZIP pro .NET. Protože se bude jednat o spustitelný archiv, jeho přípona bude .exe. Následují kroky k vytvoření spustitelného samorozbalovacího archivu v C#.
- Nejprve vytvořte nový objekt FileStream pro archivaci.
- Poté vytvořte objekt třídy Archiv.
- Přidejte soubory do archivu pomocí metody Archive.CreateEntry(string, string).
- Vytvořte objekt třídy SelfExtractorOptions pro určení možností pro samorozbalovací archiv.
- Nastavte možnosti, jako je název, ikona atd.
- Nakonec uložte samorozbalovací archivní soubor pomocí metody Archive.Save(FileStream, new ArchiveSaveOptions()).
Následující ukázka kódu ukazuje, jak vytvořit spustitelný samorozbalovací archiv v .NET.
// Vytvořte FileStream pro uložení archivu SFX
using (FileStream zipFile = File.Open("Archives/archive.exe", FileMode.Create))
{
// Vytvořte nový archiv
using (var archive = new Archive())
{
// Přidejte soubory/složky do archivu
archive.CreateEntry("SourceFile1.txt", "Archives/SourceFile1.txt");
// Vytvořte a nastavte možnosti pro archiv SFX
var sfxOptions = new SelfExtractorOptions()
{
ExtractorTitle = "Extractor",
CloseWindowOnExtraction = true,
};
// Vytvořte archiv SFX
archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
}
}
Spouštění samorozbalovacích archivů pomocí příkazového řádku
Samorozbalovací archiv, který jsme vytvořili v předchozí části, lze rozbalit dvojitým kliknutím. Pokud však chcete použít příkazový řádek, můžete archiv extrahovat pomocí následujícího příkazu.
C:>archive.exe -autoExtract
Zde je -autoExtract primární volbou, která vám umožní extrahovat archiv. V případě, že je archiv chráněn heslem, můžete zadat heslo pomocí volby -password, jak je znázorněno v následujícím příkazu.
C:>archive.exe -autoExtract -password:T0p$ecret
Úplný seznam příkazů pro práci se spustitelným samorozbalovacím archivem je uveden v tomto článku.
Získejte bezplatnou licenci API
Aspose.ZIP pro .NET můžete používat bez omezení hodnocení získáním bezplatné dočasné licence.
Závěr
V tomto článku jste se naučili, jak vytvořit samorozbalovací archivy (SFX nebo SEA) v C#. Dále jsme probrali, jak extrahovat samorozbalovací archiv pomocí příkazového řádku. Můžete jednoduše nainstalovat Aspose.ZIP pro .NET a vložit poskytnutý ukázkový kód do svých aplikací .NET. Kromě toho můžete prozkoumat více o Aspose.ZIP pro .NET pomocí jeho dokumentace. Také můžete své dotazy posílat na naše fórum.