zip() and unzip() now show a progress bar when the cli package is
installed. For zip(), progress is byte-level, so large single files are
tracked smoothly. For unzip(), progress advances once per extracted
entry. Progress bars are (for now) opt-in via the ZIP_PROGRESS=true
environment variable or the zip.progress option (#48).
unzip() now returns a data frame (invisibly) with one row per extracted
entry, containing the same columns as zip_list() (filename,
compressed_size, uncompressed_size, timestamp, permissions,
crc32, offset, type) plus a path column with the absolute path
to each extracted file on disk (#35).
zip_list() and unzip() now have an encoding argument for ZIP files
with non-UTF-8, non-CP437 filenames (e.g. CP932/Shift-JIS on Japanese
Windows). When encoding is set, filenames without the UTF-8 flag are
decoded from the specified code page instead of CP437 (#101).
zip_append() and zipr_append() now replace existing entries when
appending a file whose archive path already exists in the zip file,
instead of creating duplicate entries (#111).
unzip() and zip_list() now correctly handle ZIP files with
non-UTF-8 filenames (e.g. filenames encoded in IBM CP437, as created
by many Windows tools). The filenames are converted to UTF-8 using the
CP437 character map when the UTF-8 flag is not set in the ZIP entry
(#103).
New keys argument to zip(), zipr(), zip_append(), and
zipr_append(). It allows specifying custom paths for entries inside
the archive, independently of their paths on disk (#50).
Updated embedded miniz to version 3.1.1 (#122).
zip_list() now has a type column, for the file type.
unzip() now correctly creates symbolic links on Unix (#127).
zip_list() now returns a tbl object, and loads the pillar package,
if installed, to produce the nicer output for long data frames.zip now handles large zip files on Windows (#65, #75, #79, @weshinsley).
zip now behaves better for absolute paths in mirror mode, and when the
paths contain a : character (#69, #70).
zip::unzip() now uses the process's umask value (see umask(2)) on Unix
if the zip file does not contain Unix permissions (#67).
Fix segmentation fault when zip file can't be created (#91, @zeehio)
Fix delayed evaluation error on zipfile when zip::zip()
is used (#92, @zeehio)
New deflate() and inflate() functions to compress and uncompress
GZIP streams in memory.
Header values (of version made by and external attributes) are now correctly read and written on big-endian systems (#68).
zip_list() now also returns crc32 and offset (#74, @jefferis).
This version has no user visible changes.
unzip_process() now does not fail randomly on Windows (#60).
Now all functions handle Unicode paths correctly, on Windows as well (#42, #53).
unzip_process() now works when R library is on different drive
than exdir on Windows (#45)
zip functions now have a mode argument to choose how files and
directories are assembled into the archive. See the docs for
details.
zip functions now have a root argument, zip changes the working
directory to this before creating the archive, so all files are
relative to root.
zip() and zip_append() are not deprecated any more, as it was
hard to achieve the same functionality with the other zip functions.
unzip_process() prints better error messages to the standard error,
and exits with a non-zero status, on error.zipr() and zipr_append() get an include_directories = TRUE
argument, that can be used to omit directory entries from the zip
archive. These entries may cause problems in MS Office docx files (#34).zip_process() and unzip_process() can now pass extra arguments to
processx::process (#32).
unzip_process() now makes sure the exdir path is created with
forward slashes on Windows, mixing forward and backward slashes can
cause errors.
zip() and zip_append() are now soft-deprecated, please use
zipr() and zipr_append() instead.New zipr() and zipr_append(), they always store relative file names
in the archive.
New unzip() function for uncompressing zip archives.
New zip_process() and unzip_process() functions to create or
uncompress an archive in a background process.
zip(), zipr(), zip_append() and zipr_append() all include
directories in the archives, empty ones as well.
zip(), zipr(), zip_append() and zipr_append() all add time stamps
to the archive and zip_list() returns then in the timestamp column.
zip(), zipr(), zip_append() and zipr_append() all add file
and directory permissions to the archive on Unix systems, and
zip_list() returns them in the permissions column.
zip_list() now correctly reports the size of large files in the archive.
Use miniz 2.0.8 internally.
First public release.