Zip Configuration
The component accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the component, access to these internal properties is provided through the Config method.Zip Configuration Settings
AESGenerateUniqueKeys:
Whether to generate unique keys for each file encrypted.This setting controls the algorithm that generates AES cryptographic keys
from the Password specified. For added security, a random salt
value is generated, and a unique key will be generated for every unique
combination of Password and salt.
If true, a unique salt value and key will be generated for each file encrypted. If false, a single salt value and key will be generated for all encrypted files in the archive. If you are encrypting a lot of files, the value of this setting can have a substantial effect on both security and performance. By default, the component will set this to false. | |||||||
CheckForFileLocks:
If true, the component requests an exclusive lock during initialization.If set to true, the component will request an exclusive lock during initialization to ensure there are no other processes locking a file. This is a temporary lock and is released before work is done. This is especially useful when another process has a partial lock on a file, for instance when Outlook is working with a .pst.
False by default. | |||||||
CompressionMethod:
Used to set the method of compression.This is used to specify different compression methods. By default the component uses the Deflate compression method (a value of 0).
Supported values are:
| |||||||
EnableStreamingEncryption:
Whether to allow streaming and encryption simultaneously.If true, the component will allow encrypted files to be streamed out during
compression; i.e., the component will allow you to compress with
WriteToProgressEvent set to true and a Password has been set.
Use extreme caution when setting this option, as streamed and encrypted zip files may be unreadable by other zip software. | |||||||
ExcludedAttributes:
Attributes of files to be excluded.
Files with attributes matching those specified will be excluded from compression or decompression. May be set to any
combination of H (hidden), S (system), A (archive), and R (read-only).
(Example: "HSR") Alternatively, may be set to a bitmask of the following flags:
Readonly (1), Hidden (2), System (4), Directory (16), Archive (32).
For Java, when compressing, attributes other than "H" and "R" will be ignored (due to JRE limitations). Default: "" (no excluded attributes) | |||||||
ExtractFilesOnly: Whether to only extract the files contained within the archive. If true, only the files contained within the ArchiveFile are extracted directly to the specified ExtractToPath. Folders contained within the ArchiveFile will not be created within the ExtractToPath. If an archive contains files with the same name, you can control whether or not they get overwritten by setting OverwriteFiles. | |||||||
FileHashAlgorithm:
The algorithm to use when computing the file hash.This setting specifies the algorithm (if any) to use when computing the hash for files within the archive.
If specified, when Compress is called the hash will be computed for each file within the archive and
Hash will be populated with the computed hash value. Possible values are:
| |||||||
ForceZip64Format: Whether to explicitly compress a Zip64 format archive.Setting this value to true will force the component to always create a Zip64 format archive when compressing. By default, this value is false and the component will detect whether or not compressing in Zip64 format is necessary. | |||||||
MarkAsText:
Whether to mark files as text files.
If true, the component will mark files as text within the zip archive. This may allow
decompression software on other platforms to translate between character sets, etc.
If false (the default), files will be written as binary. To mark some files as text and others as binary, it is recommended that you trap the BeginFile event and set this property value as appropriate for each file. | |||||||
OverwriteReadonlyFiles: Whether to overwrite readonly files. If true, the component will overwrite readonly files when decompressing. If false (the default), the component will fire the Error event, instead, and will fail with an exception if the error is not trapped and explicitly ignored in the event. | |||||||
PreserveModifiedTime:
Whether or not to preserve the original modified time on extracted files.Specifies whether or not the modified time of the extracted files use the current time or the original
time of the file in the archive.
When set to True (default) the extracted files will have the same modified time as the original file. When set to False the modified time on the extracted files will be set to the current time. | |||||||
RecalculateCRC:
Whether to recalculate the CRC.If True, the component will recalculate the CRC whenever data from the file is added to the archive. In situations where file content may be changing during compression this will ensure a correct CRC.
Use this setting with caution as it can impact performance. The default value is False. | |||||||
VerifyPassword:
Check whether the specified Password can decrypt the archive without extracting files.If the password set in the Password property can successfully decrypt the archive, this config will return the string "True". Otherwise, it will
return the string "False". No files are extracted when this config is referenced.
For example:
Zip zip = new Zip(); zip.ArchiveFile = myArchive; zip.Password = myPassword; string verified = zip.Config("VerifyPassword"); // verified contains either "True" or "False" | |||||||
WriteToProgressEvent:
Whether or not to write data to the Progress Event.If WriteToProgressEvent is set to true, then all data produced through invocations
of Extract, ExtractAll, and Compress will be written to the Progress
event as well as to disk. Applications may stream out the compressed or decompressed
data by trapping this event and copying the data.
If WriteToProgressEvent is set to false, the data will not be streamed out, and the Data parameter of the Progress event will contain null. Note that if streaming is enabled the zip files written will be slightly larger. Moreover, zip files produced with WriteToProgressEvent may be incompatible with certain older zip utilities. By default, Password encryption is not allowed for archives created with WriteToProgressEvent set to true. You may set the EnableStreamingEncryption setting to allow this, but streamed and encrypted zip files may be incompatible with other utilities. By default, this config is set to false. |
Base Configuration Settings
BuildInfo: Information about the product's build.When queried, this setting will return a string containing information about the product's build. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CodePage:
The system code page used for Unicode to Multibyte translations.The default code page is Unicode UTF-8 (65001).
The following is a list of valid code page identifiers:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LicenseInfo:
Information about the current license.When queried, this setting will return a string containing information about the license this instance of a component is using. It will return the following information:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseInternalSecurityAPI: Tells the component whether or not to use the system security libraries or an internal implementation. By default the component will use the system security libraries to perform cryptographic functions. Setting this to True tells the component to use the internal implementation instead of using the system's security API. |