Ein selbstextrahierendes Archiv (SFX oder SEA) ist ein spezieller Dateityp, der komprimierte Daten zusammen mit ausführbaren Anweisungen enthält. Dieses Archiv hat die Fähigkeit, die darin enthaltenen Dateien selbst zu extrahieren. Daher benötigen Sie keine spezielle Extraktions- oder Dekomprimierungsanwendung, um selbstextrahierende Archive zu öffnen. In diesem Artikel erfahren Sie, wie Sie aus Ihren .NET-Anwendungen heraus ausführbare, selbstextrahierende Archive in C# erstellen.
- .NET-API zum Erstellen von selbstextrahierenden Archiven
- Erstellen Sie ein selbstextrahierendes Archiv in C#
- Ausführen von selbstextrahierenden Archiven über die Befehlszeile
C# .NET-API zum Erstellen von selbstextrahierenden Archiven
Um selbstextrahierende Archive zu erstellen, verwenden wir Aspose.ZIP for .NET. Es ist eine leistungsstarke und funktionsreiche API, mit der Sie die Archivierungsfunktionen in .NET-Anwendungen ganz einfach automatisieren können. Darüber hinaus unterstützt es eine Vielzahl gängiger Archivformate wie ZIP, TAR usw. Sie können die DLL der API herunterladen oder mit NuGet installieren.
PM> Install-Package Aspose.Zip
Erstellen Sie ein selbstextrahierendes Archiv in C#
Beginnen wir mit der Erstellung eines selbstextrahierenden Archivs, vorausgesetzt, Sie haben Aspose.ZIP für .NET installiert. Da es sich um ein ausführbares Archiv handelt, lautet die Erweiterung .exe. Im Folgenden sind die Schritte zum Erstellen eines ausführbaren, selbstextrahierenden Archivs in C# aufgeführt.
- Erstellen Sie zunächst ein neues FileStream-Objekt für das Archiv.
- Erstellen Sie dann ein Objekt der Klasse Archive.
- Dateien mit der Methode Archive.CreateEntry(string, string) zum Archiv hinzufügen.
- Erstellen Sie ein Objekt der Klasse SelfExtractorOptions, um Optionen für das selbstextrahierende Archiv anzugeben.
- Legen Sie Optionen wie Titel, Symbol usw. fest.
- Speichern Sie abschließend die selbstextrahierende Archivdatei mit der Methode Archive.Save(FileStream, new ArchiveSaveOptions()).
Das folgende Codebeispiel zeigt, wie Sie ein ausführbares, selbstextrahierendes Archiv in .NET erstellen.
// Erstellen Sie FileStream, um das SFX-Archiv zu speichern
using (FileStream zipFile = File.Open("Archives/archive.exe", FileMode.Create))
{
// Erstellen Sie ein neues Archiv
using (var archive = new Archive())
{
// Dateien/Ordner zum Archiv hinzufügen
archive.CreateEntry("SourceFile1.txt", "Archives/SourceFile1.txt");
// Optionen für das SFX-Archiv erstellen und festlegen
var sfxOptions = new SelfExtractorOptions()
{
ExtractorTitle = "Extractor",
CloseWindowOnExtraction = true,
};
// SFX-Archiv erstellen
archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
}
}
Ausführen von selbstextrahierenden Archiven über die Befehlszeile
Das selbstextrahierende Archiv, das wir im vorherigen Abschnitt erstellt haben, kann durch einen Doppelklick darauf entpackt werden. Wenn Sie jedoch die Befehlszeile verwenden möchten, können Sie das Archiv mit dem folgenden Befehl extrahieren.
C:>archive.exe -autoExtract
Hier ist -autoExtract die primäre Option, mit der Sie das Archiv extrahieren können. Falls das Archiv passwortgeschützt ist, können Sie das Passwort mit der Option -password angeben, wie im folgenden Befehl gezeigt.
C:>archive.exe -autoExtract -password:T0p$ecret
Die vollständige Liste der Befehle zum Arbeiten mit einem ausführbaren selbstextrahierenden Archiv finden Sie in diesem Artikel.
Holen Sie sich eine kostenlose API-Lizenz
Sie können Aspose.ZIP für .NET ohne Evaluierungseinschränkungen verwenden, indem Sie eine kostenlose temporäre Lizenz erwerben.
Fazit
In diesem Artikel haben Sie gelernt, wie Sie selbstextrahierende Archive (SFX oder SEA) in C# erstellen. Außerdem haben wir besprochen, wie man ein selbstextrahierendes Archiv über die Kommandozeile entpackt. Sie können einfach Aspose.ZIP für .NET installieren und das bereitgestellte Codebeispiel in Ihre .NET-Anwendungen einbetten. Außerdem können Sie mithilfe der Dokumentation mehr über Aspose.ZIP für .NET erfahren. Sie können Ihre Fragen auch in unserem Forum posten.