Создать самораспаковывающийся (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.