Создать самораспаковывающийся (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Параметры командной строки для самораспаковывающегося архива
| Option | Meaning | Sample |
|---|---|---|
| -autoExtract | Primary option - without it decompression does not start. Extraction starts automatically, other options apply. | sfx.exe -autoExtract |
| -autoClose | Window closes when the extraction is complete. This option only makes sense if -autoExtract option is present. | sfx.exe -autoExtract -autoClose |
| -forceOverwrite | Overwrites 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.