CreateSFX Method

Compresses the files and creates a self-extracting archive.


public void CreateSFX();
Public Sub CreateSFX()


Invoking CreateSFX creates the archive specified by ArchiveFile. When the method is called, all files specified by SourceDirectory will be compressed and written to ArchiveFile. If RecurseSubdirectories is true, all the subdirectories under SourceDirectory and the files they contain will also be compressed and written to ArchiveFile.

If ArchiveFile exists when you call CreateSFX it will be overwritten.

As the files in SourceDirectory are being compressed, the Progress event will fire periodically to indicate how many bytes have been processed and the percentage of compression that has been completed.

To include your own custom text on the title bar of all of the self-extractor dialog boxes, set the CaptionText before calling CreateSFX. Setting the optional BannerText property will cause a small dialog to pop up when the self-extractor is run. You can put in a description of the contents, instructions, or any text you like.

Example (Creating a Self-Extracting Archive)

component.ArchiveFile = "c:\test.exe"
component.RecurseSubdirectories = true
component.SourceDirectory = "c:\foo\"
component.CaptionText = "Testing ZipSFX"
component.BannerText = "Press continue to decompress the archive."

Note: When creating a self-extracting archive which exceeds 4 GB or more of uncompressed data or which contains more than 64K files, the component will create a 64-bit Zip archive.

The self-extracting archive that is created by the ZipSFX component is a Windows application. However, there are command line options available if you wish to batch multiple files. The options are:

Option NameDescription
targetpathPath to decompress the archive to. This overrides the ExtractToPath. "." indicates the current directory (if no ExtractToPath was specified and no targetpath is given, the archive is decompressed to the current directory).
overwriteIf set to true, the archive will automatically overwrite existing files (thus suppressing the message box asking you to overwrite or not)
displaymessageIf set to false, it will suppress the display of the "Extraction Complete" message after the archive has finished (this may also be accomplished by setting the CompleteMessage config setting to "").
openfileIf set to false, this option will override opening the file indicated by FileToExecute. (Alternatively, set FileToExecute to "").
passwordThe password used to decrypt the archive. If the archive is not encrypted this option is ignored. However if the archive is encrypted and no password is supplied, decompression will fail.

For example, the following suppresses all questions and message boxes, and decompress to the current directory, use the following options:

  ZipExtractor /targetpath="." /overwrite=1 /displaymessage=0 /openfile=0 /password=pass

Note that if you run the self-extracting archive with any command line options, the pop up message box containing the BannerText will be suppressed.

.NET Standard Notes

To call this method in an asynchronous manner call CreateSFXAsync instead. When the method completes (or an error is encountered) the CreateSFXCompleted event will fire.

Copyright (c) 2021 /n software inc. - All rights reserved.
IPWorks ZIP 2020 .NET Edition - Version 20.0 [Build 7720]