[vset VERSION 0.4] [comment {-*- tcl -*- doctools manpage}] [manpage_begin zipfile::encode n [vset VERSION]] [keywords compression zip] [copyright {2008-2009 Andreas Kupries}] [moddesc {Zip archive handling}] [titledesc {Generation of zip archives}] [category File] [require Tcl 8.4] [require logger] [require Trf] [require crc32] [require snit] [require zlibtcl] [require fileutil] [require zipfile::encode [opt [vset VERSION]]] [description] [para] This package provides a class for the generation of zip archives. [section {Class API}] [list_begin definitions] [call [cmd ::zipfile::encode] [opt [arg objectName]]] The class command constructs encoder instances, i.e. objects. The result of the command is the fully-qualified name of the instance command. [para] If no [arg objectName] is specified the class will generate and use an automatic name. If the [arg objectName] was specified, but is not fully qualified the command will be created in the current namespace. [list_end] [section {Instance API}] [list_begin definitions] [comment ---------------------------------------------------------------------] [call [cmd ] [method comment:] [arg 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. [comment ---------------------------------------------------------------------] [call [cmd ] [method file:] [arg dst] [arg owned] [arg src] \ [opt [arg noCompress]]] This method adds a new file to the archive. The contents of the file are found in the filesystem at [arg src], and will be stored in the archive under path [arg dst]. If the file is declared as [arg owned] by the archive the original file will be deleted when the archive is constructed and written. If [arg noCompress] is set to [const 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. [comment ---------------------------------------------------------------------] [call [cmd ] [method write] [arg archive]] This method takes the global comment and all added files, encodes them as a zip archive and stores the result at path [arg 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 [method file:]. [emph 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 [cmd zip]-based file formats which require a specific order of files in the archive, for example [file .epub]. [list_end] [vset CATEGORY zipfile] [include ../common-text/feedback.inc] [manpage_end]