Створення виконуваного архіву, що саморозпаковується, на C#

Архів, що саморозпаковується(SFX або SEA) — це особливий тип файлу, який містить стислі дані разом із виконуваними інструкціями. Цей архів має можливість самостійно розпаковувати файли, які він містить. Тому для відкриття архівів, що саморозпаковуються, вам не потрібна якась спеціальна програма для розпаковування чи розпаковування. У цій статті ви дізнаєтеся, як створювати виконувані архіви, що саморозпаковуються, на C# з ваших програм .NET.

C# .NET API для створення архівів, що саморозпаковуються

Для створення архівів, що саморозпаковуються, ми будемо використовувати Aspose.ZIP for .NET. Це потужний і багатофункціональний API, який дозволяє досить легко автоматизувати функції архівування в програмах .NET. Крім того, він підтримує різноманітні популярні формати архівів, такі як ZIP, TAR тощо. Ви можете завантажити DLL API або встановити його за допомогою NuGet.

PM> Install-Package Aspose.Zip 

Створення архіву, що саморозпаковується, на C#

Давайте почнемо створювати архів, що саморозпаковується, припускаючи, що ви встановили Aspose.ZIP for .NET. Оскільки це буде виконуваний архів, його розширення буде .exe. Нижче наведено кроки для створення виконуваного архіву, що саморозпаковується, у C#.

  • Спочатку створіть новий об’єкт FileStream для архіву.
  • Потім створіть об’єкт класу Архів.
  • Додайте файли до архіву за допомогою методу Archive.CreateEntry(string, string).
  • Створіть об’єкт класу SelfExtractorOptions, щоб відокремити параметри архіву, що саморозпаковується.
  • Установіть такі параметри, як заголовок, піктограма тощо.
  • Нарешті збережіть архівний файл, що саморозпаковується, використовуючи метод Archive.Save(FileStream, new ArchiveSaveOptions()).

У наведеному нижче прикладі коду показано, як створити виконуваний архів, що саморозпаковується, у .NET.

// Створіть FileStream, щоб зберегти архів SFX
using (FileStream zipFile = File.Open("Archives/archive.exe", FileMode.Create))
{
    // Створіть новий архів
    using (var archive = new Archive())
    {
        // Додати файли/папки до архіву
        archive.CreateEntry("SourceFile1.txt", "Archives/SourceFile1.txt");

        // Створення та налаштування параметрів для архіву SFX
        var sfxOptions = new SelfExtractorOptions()
        {
            ExtractorTitle = "Extractor",
            CloseWindowOnExtraction = true, 
        };

        // Створіть архів SFX
        archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
    }
}

Запуск архівів, що саморозпаковуються, за допомогою командного рядка

Архів, що саморозпаковується, який ми створили в попередньому розділі, можна розпакувати подвійним клацанням миші. Однак, якщо ви хочете використовувати командний рядок, ви можете розпакувати архів за допомогою такої команди.

C:>archive.exe -autoExtract 

Тут -autoExtract є основним параметром, який дозволяє розпакувати архів. Якщо архів захищено паролем, ви можете вказати пароль за допомогою параметра -password, як показано в наступній команді.

C:>archive.exe -autoExtract -password:T0p$ecret

Повний список команд для роботи з виконуваним архівом, що саморозпаковується, наведено в цій статті.

Отримайте безкоштовну ліцензію API

Ви можете використовувати Aspose.ZIP for .NET без оціночних обмежень, отримавши безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як створювати архіви, що саморозпаковуються (SFX або SEA) у C#. Крім того, ми обговорили, як розпакувати архів, що саморозпаковується, за допомогою командного рядка. Ви можете просто встановити Aspose.ZIP for .NET і вставити наданий зразок коду у ваші програми .NET. Крім того, ви можете дізнатися більше про Aspose.ZIP for .NET, використовуючи його документацію. Також ви можете опублікувати свої запити на нашому форумі.

Дивись також