Создать самораспаковывающийся (SFX) архив.

Aspose.ZIP позволяет создавать самораспаковывающийся (SFX) архив. Это особый вид заархивированного файла с расширением .exe. Вы можете разархивировать самораспаковывающийся файл, дважды щелкнув его.

Создание самораспаковывающегося архива

Чтобы создать самораспаковывающийся архив, создайте экземпляр SelfExtractorOptions и передайте его в ArchiveSaveOptions при сохранении.

 1    using (FileStream zipFile = File.Open("archive.exe", FileMode.Create))
 2    {
 3        using (var archive = new Archive())
 4        {
 5            archive.CreateEntry("entry.bin", "data.bin");
 6            var sfxOptions = new SelfExtractorOptions() 
 7            { 
 8            ExtractorTitle = "Extractor", 
 9            CloseWindowOnExtraction = true, 
10            TitleIcon = "C:\pictorgam.ico" 
11            };
12            archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
13        }
14    }

Запуск самораспаковывающегося архива

Создаваемый вами архив является исполняемым, и для его запуска требуется .NET Framework 2.0 или более поздняя версия. Такие платформы поставляются с Windows Vista и выше. Вы можете запустить его как обычную программу двойным щелчком мыши или запустить через интерфейс командной строки. Если вы хотите начать извлечение автоматически, укажите параметр командной строки -autoExtract. Образец:

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

Параметры командной строки для самораспаковывающегося архива

OptionMeaningSample
-autoExtract

Primary option - without it decompression does not start.

Extraction starts automatically, other options apply.

sfx.exe -autoExtract
-autoCloseWindow closes when the extraction is complete. This option only makes sense if -autoExtract option is present.sfx.exe -autoExtract -autoClose
-forceOverwriteOverwrites all existing files without prompt if there are any. This option only makes sense if -autoExtract option present.sfx.exe -autoExtract -forceOverwrite
-password:

Provides a password to encrypted entries. This option only makes sense if -autoExtract option is present.

If you have spaces within the password quote it.

sfx.exe -autoExtract -password:T0p$ecret
-destination:

Extracts files to the supplied directory. This option only makes sense if -autoExtract option is present.

If you have spaces within the path quote it.

sfx.exe -autoExtract -destination:"C:\My Documents"

Вы можете использовать эти параметры для создания пакетного сценария в Windows.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.