4 zip File Creation
procedure
(zip zip-file path ... [ #:timestamp timestamp #:get-timestamp get-timestamp #:utc-timestamps? utc-timestamps? #:round-timestamps-down? round-timestamps-down? #:path-prefix path-prefix #:system-type sys-type]) → void? zip-file : path-string? path : path-string? timestamp : (or/c #f exact-integer?) = #f
get-timestamp : (path? . -> . exact-integer?) =
(if timestamp (lambda (p) timestamp) file-or-directory-modify-seconds) utc-timestamps? : any/c = #f round-timestamps-down? : any/c = #f path-prefix : (or/c #f path-string?) = #f sys-type : symbol? = (system-type)
The given paths are all expected to be relative path names of existing directories and files (i.e., relative to the current directory). If a nested path is provided as a path, its ancestor directories are also added to the resulting zip file, up to the current directory (using pathlist-closure).
Files are packaged as usual for zip files, including permission bits for both Windows and Unix (including Mac OS). The permission bits are determined by file-or-directory-permissions, which does not preserve the distinction between owner/group/other permissions. Also, symbolic links are always followed.
The get-timestamp function is used to obtain the modification date to record in the archive for a file or directory. Normally, zip archives record modification dates in local time, but if utc-timestamps? is true, then the UTC time is recorded. Timestamps in zip archives are precise only to two seconds; by default, the time is rounded toward the future (like WinZip or PKZIP), but time is rounded toward the past (like Java) if round-timestamps-down? is true.
The sys-type argument determines the system type recorded in the archive.
If path-prefix is not #f, then it prefixes the name of each path as it is written in the zip file, and directory entries are added for each element of path-prefix.
Changed in version 6.0.0.3 of package base: Added the #:get-timestamp and #:system-type arguments.
Changed in version 6.0.1.12: Added the #:path-prefix, #:utc-timestamps?, and
#:utc-timestamps-down? arguments.
procedure
(zip->output paths [ out #:timestamp timestamp #:get-timestamp get-timestamp #:utc-timestamps? utc-timestamps? #:round-timestamps-down? round-timestamps-down? #:path-prefix path-prefix #:system-type sys-type]) → void? paths : (listof path-string?) out : output-port? = (current-output-port) timestamp : (or/c #f exact-integer?) = #f
get-timestamp : (path? . -> . exact-integer?) =
(if timestamp (lambda (p) timestamp) file-or-directory-modify-seconds) utc-timestamps? : any/c = #f round-timestamps-down? : any/c = #f path-prefix : (or/c #f path-string?) = #f sys-type : symbol? = (system-type)
Changed in version 6.0.0.3 of package base: Added the #:get-timestamp and #:system-type arguments.
Changed in version 6.0.1.12: Added the #:path-prefix, #:utc-timestamps?, and
#:utc-timestamps-down? arguments.
parameter
(zip-verbose) → boolean?
(zip-verbose on?) → void? on? : any/c