package require Tcl 8.4
package require logger
package require Trf
package require crc32
package require snit
package require zlibtcl
package require fileutil
package require zipfile::encode ?0.4?
<encoder> comment: text
<encoder> file: dst owned src ?noCompress?
<encoder> write archive
This package provides a class for the generation of zip archives.
- ::zipfile::encode ?objectName?
The class command constructs encoder instances, i.e. objects. The result of the command is the fully-qualified name of the instance command.
If no objectName is specified the class will generate and use an automatic name. If the objectName was specified, but is not fully qualified the command will be created in the current namespace.
- <encoder> comment: text
This method specifies the text of the global comment for the archive. The result of the method is the empty string. In case of multiple calls to this method for the same encoder the data from the last call prevails over all previous texts.
- <encoder> file: dst owned src ?noCompress?
This method adds a new file to the archive. The contents of the file are found in the filesystem at src, and will be stored in the archive under path dst. If the file is declared as owned by the archive the original file will be deleted when the archive is constructed and written. If noCompress is set to true the file will not be compressed on writing. Otherwise (the default) the file is compressed if it is advantageous. The result of the method is an empty string.
- <encoder> write archive
This method takes the global comment and all added files, encodes them as a zip archive and stores the result at path archive in the filesystem. All added files which were owned by the archive are deleted at this point. On the issue of ordering, the files are added to the archive in the same order as they were specified via file:. Note that this behaviour is new for version 0.4 and higher. Before 0.4 no specific order was documented. It was lexicographically sorted. The change was made to support zip-based file formats which require a specific order of files in the archive, for example ".epub".
Bugs, Ideas, Feedback
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category zipfile of the Tcllib Trackers [http://core.tcl.tk/tcllib/reportlist]. Please also report any ideas for enhancements you may have for either package and/or documentation.
When proposing code changes, please provide unified diffs, i.e the output of diff -u.
Note further that attachments are strongly preferred over inlined patches. Attachments can be made by going to the Edit form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.
Copyright (c) 2008-2009 Andreas Kupries