IP*Works! ZIP V9 - Online Help
IP*Works! ZIP V9
Questions / Feedback?

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.

CloseArchiveAfterCompress:   Whether to close the archive after calling Compress.

This setting determines whether the archive is closed after calling Compress. When set to False the archive remains open and additional files can be added at any time. This allows files to be added to the archive incrementally as they become available. For instance:

zip.Config("CloseArchiveAfterCompress=false");

//Add one file
zip.Files.Add(new ZIPFile("..\\..\\files\\test.txt"));
zip.Compress();

//Add another file
zip.Files.Clear();
zip.Files.Add(new ZIPFile("..\\..\\files\\test2.txt"));
zip.Compress();

//Ready to finish creating the archive
zip.Config("CloseArchiveAfterCompress=true");

zip.Files.Clear();
zip.Compress(); //Must be called to finish archive creation
As illustrated in the code above this setting must be set to True after all files are added to the archive and Compress must be called a final time to complete the archive creation.

The default value of this setting is True.

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 or with SetArchiveOutputStream set to a valid stream 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.

FileHashAlgorithm:   The algorithm used to generate a hash of each file during compression.

If set, the component will generate a hash for each file when the file is compressed. After compression, the hash is avaiable through the Files[i].FileHash configuration setting.

The supported algorithms are: "sha1", "sha224", "sha256", "sha384" and "md5".

Files[i].FileHash:   The hash generated for each file during compression.

If FileHashAlgorithm is set, this setting is used to access the hash generated for each file. This setting is read-only.

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.

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.

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.

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:

ValueMethod
0Deflate (default)
1PPMd

Base Configuration Settings

CloseStreamAfterCompress:   If true, the component will close the output stream after compression.

This property is true by default. Therefore, by default, the output stream will be closed after compression is completed. In order to keep streams open after the compression completes, you must set this config to false.

Encoding:   Encoding to be used for filenames.

The encoding to be used for filenames, and for Zip files, the password. The file contents are treated as binary data, and so encoding does not apply to the contents. At present only supported for Zip and Jar.

Default - Zip: "" (use default encoding of current machine, if possible)

Default - Jar: "UTF-8"

Example - This would set encoding to Japanese Shift-JIS.

Zip1.Config("Encoding=SJIS");

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.

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.

Base Configuration Settings

GUIAvailable:   Tells the component whether or not a message loop is available for processing events.

In a GUI-based application, long-running blocking operations may cause the application to stop responding to input until the operation returns. The component will attempt to discover whether or not the application has a message loop and, if one is discovered, it will process events in that message loop during any such blocking operation.

In some non-GUI applications an invalid message loop may be discovered that will result in errant behavior. In these cases, setting GuiAvailable to false will ensure that the component does not attempt to process external events.

UseBackgroundThread:   Whether threads created by the component are background threads.

If set to True, when the component creates a thread the thread's IsBackground property will be explicitly set to True. By default this setting is False.

UseManagedSecurityAPI:   Tells the component whether or not to use the system security libraries or a managed implementation.

By default the component will use the system security libraries to perform cryptographic functions. This means calls to unmanaged code will be made. In certain environments this is not desirable. To use a completely managed security implementation set this setting to True. Setting this to True tells the component to use the internal managed implementation instead of using the system's security API.

Note that when this value is set the product's system dll is no longer required as a reference, as all unmanaged code is stored in this file.

 
 
Copyright (c) 2017 /n software inc. - All rights reserved.
Build 9.0.6240.0