Create self-extracting (SFX) archive

Aspose.ZIP allows creating a self-extracting (SFX) archive. This is a special kind of zipped file, which has a filename extension of.exe. You can unzip a self-extracting file by double-clicking it.

Creation self-extracting archive

To compose a self-extracting archive instantiate SelfExtractorOptions and pass it to ArchiveSaveOptions on saving.

 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    }

Running self-extracting archive

The archive you produce is executable and requires .NET Framework 2.0 or higher to run. Such frameworks are supplied with Windows Vista and above. You can execute it as a regular program by double click, or run it via the command-line interface. If you want to start extraction automatically specify -autoExtract command-line option. Sample:

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

Command line options for self-extracting archive

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"

You can use those options for composing Batch Script on Windows.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.