The ZipPreprocessingFile event provides the opportunity to view and change a file's information as well as exclude files from being added to the zip file. This event is triggered for each file before any of the files are opened for reading.
Not all file information provided by the ZipPreprocessingFile event's parameters is modifiable. The table below provides a list of parameters provided by ZipPreprocessingFile and shows you which ones can be modified.
When creating self-extracting zip files, you can use macros in the sFilename parameter, and so you can therefore control where each file will be unzipped to by the self-extracting zip file. Also when creating self-extracting zip files, the sFilename parameter can contain an absolute path starting with a drive letter and colon, which will cause the self-extracting zip file to extract the file into an absolute path.
Declaration (event) | |
---|---|
Event ZipPreprocessingFile(sFilename As String, sComment As String, sSourceFilename As String, lSize As Long, |
Declaration (DLL API) | |
---|---|
xcdZipPreprocessingFileParams * pParams = ( xcdZipPreprocessingFileParams * ) lParam; |
Parameter | Modifiable | Description |
---|---|---|
sFilename | YES | The file's path and filename, exactly as it will be stored in the zip file. |
sComment | YES | The file's comment. |
sSourceFilename | NO | The real path and filename of the file about to be zipped. |
lSize | NO | The file's size, in bytes. |
lSizeLow lSizeHigh (64) |
NO | The 32 low-order and high-order bits representing the file's size, in bytes. |
xAttributes | YES | The file's attributes. |
dtLastModified | YES | The last modification date and time stamp. |
dtLastAccessed | YES | The last accessed date and time stamp. |
dtCreated | YES | The creation date and time stamp. |
xMethod | YES | The compression method. |
bEncrypted | YES | Is this file going to be encrypted? |
sPassword | YES | If so, it will be encrypted with this password. |
bExcluded | YES | Will this file be zipped or excluded? |
xReason | NO | If it will be excluded, why? |
bExisting | NO | When zipping to an existing zip file, this parameter indicates if the file about to be zipped already exists in the destination zip file. |
If you need an event that occurs right before each file is actually opened to be zipped, then you can use FileStatus event.
Version 6.0 of Xceed Zip Compression Library introduces AES encryption support. Because of export restrictions in some countries, a new license validation had to be implemented. License keys that begin with "ZIP" enable AES encryption support while "ZIL" license keys, either trial or registered, do not activate AES encryption support.
When zipping in trial mode with a "ZIP" (ZIP60 or more recent) license key, if the EncryptionMethod property is set to xemWinZipAES, the EncryptionPassword property will be changed to "This is a trial password" only if it had been modified prior to setting the EncryptionMethod property. If a password other than "This is a trial password" is specified in the EncryptionPassword property after the EncryptionMethod property has been set, a "Set not permitted" error will be thrown. The password can also be specified via the ZipPreprocessingFile event however if a password other than "This is a trial password" is specified, the SkippingFile event will be raised with a xsrNotLicenced skipping reason.
When unzipping an AES-encrypted zip file in trial mode with a "ZIP" license key, the only password that can be used is "This is a trial password" and it must be specified via the EncryptionPassword property, InvalidPassword event, or UnzipPreprocessingFile event. If a password other than "This is a trial password" is specified, the SkippingFile event will be raised with a xsrNotLicenced skipping reason. When unzipping, the EncryptionMethod property does not need to be set.
For both registered and trial "ZIP" and "ZIL" license keys, if the EncryptionPassword property is an empty string, the files will not be encrypted regardless of the value of the EncryptionMethod.