Samorozpakowujące się archiwum (SFX lub SEA) to specjalny typ pliku, który zawiera skompresowane dane wraz z wykonywalnymi instrukcjami. To archiwum ma możliwość samodzielnego wyodrębnienia zawartych w nim plików. Dlatego do otwierania samorozpakowujących się archiwów nie jest potrzebna żadna konkretna aplikacja do wyodrębniania ani dekompresowania. W tym artykule dowiesz się, jak tworzyć wykonywalne, samorozpakowujące się archiwa w języku C# z poziomu aplikacji .NET.
- Interfejs API platformy .NET do tworzenia samorozpakowujących się archiwów
- Utwórz samorozpakowujące się archiwum w języku C#
- Wykonywanie samorozpakowujących się archiwów z wiersza poleceń
C# .NET API do tworzenia samorozpakowujących się archiwów
Aby utworzyć samorozpakowujące się archiwa, użyjemy Aspose.ZIP for .NET. Jest to potężny i bogaty w funkcje interfejs API, który pozwala dość łatwo zautomatyzować funkcje archiwizacji w aplikacjach .NET. Ponadto obsługuje wiele popularnych formatów archiwów, takich jak ZIP, TAR itp. Możesz pobrać bibliotekę DLL API lub zainstalować ją za pomocą NuGet.
PM> Install-Package Aspose.Zip
Utwórz samorozpakowujące się archiwum w języku C#
Zacznijmy tworzyć samorozpakowujące się archiwum zakładając, że masz zainstalowany Aspose.ZIP for .NET. Ponieważ będzie to archiwum wykonywalne, jego rozszerzeniem będzie .exe. Poniżej przedstawiono kroki tworzenia wykonywalnego samorozpakowującego się archiwum w języku C#.
- Najpierw utwórz nowy obiekt FileStream dla archiwum.
- Następnie utwórz obiekt klasy Archiwum.
- Dodaj pliki do archiwum metodą Archive.CreateEntry(string, string).
- Utwórz obiekt klasy SelfExtractorOptions, aby określić opcje dla samorozpakowującego się archiwum.
- Ustaw opcje, takie jak tytuł, ikona itp.
- Na koniec zapisz samorozpakowujący się plik archiwum przy użyciu metody Archive.Save(FileStream, new ArchiveSaveOptions()).
Poniższy przykładowy kod pokazuje, jak utworzyć samorozpakowujące się archiwum wykonywalne w programie .NET.
// Utwórz FileStream, aby zapisać archiwum SFX
using (FileStream zipFile = File.Open("Archives/archive.exe", FileMode.Create))
{
// Utwórz nowe archiwum
using (var archive = new Archive())
{
// Dodaj pliki/foldery do archiwum
archive.CreateEntry("SourceFile1.txt", "Archives/SourceFile1.txt");
// Twórz i ustawiaj opcje archiwum SFX
var sfxOptions = new SelfExtractorOptions()
{
ExtractorTitle = "Extractor",
CloseWindowOnExtraction = true,
};
// Utwórz archiwum SFX
archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
}
}
Wykonywanie samorozpakowujących się archiwów przy użyciu wiersza poleceń
Samorozpakowujące się archiwum, które utworzyliśmy w poprzedniej sekcji, można wyodrębnić, klikając je dwukrotnie. Jeśli jednak chcesz użyć wiersza poleceń, możesz wyodrębnić archiwum za pomocą następującego polecenia.
C:>archive.exe -autoExtract
Tutaj -autoExtract jest podstawową opcją, która pozwala wyodrębnić archiwum. Jeśli archiwum jest chronione hasłem, możesz określić hasło za pomocą opcji -password, jak pokazano w poniższym poleceniu.
C:>archive.exe -autoExtract -password:T0p$ecret
Pełną listę poleceń do pracy z wykonywalnym samorozpakowującym się archiwum można znaleźć w tym artykule.
Uzyskaj bezpłatną licencję API
Możesz używać Aspose.ZIP for .NET bez ograniczeń ewaluacyjnych, otrzymując bezpłatną licencję tymczasową.
Wniosek
W tym artykule nauczyłeś się tworzyć samorozpakowujące się archiwa (SFX lub SEA) w języku C#. Ponadto omówiliśmy, jak wyodrębnić samorozpakowujące się archiwum za pomocą wiersza poleceń. Możesz po prostu zainstalować Aspose.ZIP for .NET i osadzić dostarczony przykładowy kod w swoich aplikacjach .NET. Poza tym możesz dowiedzieć się więcej o Aspose.ZIP for .NET, korzystając z jego dokumentacji. Możesz również zamieścić swoje zapytania na naszym forum.