Utwórz wykonywalne samorozpakowujące się archiwum w języku C#

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.

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#.

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.

Zobacz też