A self-extracting zip file is a zip file that has the necessary information in its prefix (header) to unzip the files it contains without the need for third party applications such as WinZip ™ or even Xceed Zip for .NET.
To create a self-extracting zip file, the following steps must be taken.
Retrieve a reference to a new or existing zip file using the ZipArchive class.
Create an instance of the XceedSfxPrefix class. This object contains all the necessary information to create self-extracting zip files and will be used as the source binary.
Configure the self-extractor binary by setting various properties of the XceedSfxPrefix object.
Assign the prefix to the SfxPrefix property of the ZipArchive object. Since setting the Prefix property updates the self-extracting zip file and we will be doing other updates to the self-extracting zip file, we will do a batch update.
Retrieve a reference to a folder whose files will be added to the zip file using either the DiskFolder, ZippedFolder, ZipArchive, MemoryFolder or IsolatedFolder classes. With Xceed Zip for .NET, a folder is a folder; it does not matter if it is located within a zip file, on disk or in memory.
Copy the folder and its content into the self-extracting zip file using the CopyTo method.
The following example demonstrates how to create a self-extracting zip file:
VB.NET | Copy Code |
---|---|
|
C# | Copy Code |
---|---|
using Xceed.Zip; |
The main questions you should ask yourself when copying items to a zip file are:
Do you want to filter (specify specific files and folders) the items that are to be added to the zip file? Use filters.
Do you want to convert an existing zip file to a self-extracting zip file? Jump to the converting zip and self-extracting zip files topic.
Do you want to display the status of the operation? See the Events topic.
Do you want to add items into a specific folder within the self-extracting zip file? Create an instance of a ZippedFolder object rather than a ZipArchive object.
Do you want to change the location of the temporary folder. Set the ZipArchive's TempFolder or DefaultTempFolder property.
Do you only want to do basic zip file operations? Use the QuickZip class.
All zip files will automatically be created in the Zip64 zip file format if the limitations of the regular Zip format are reached.