Skip to content
Platform independent zip compression via miniz
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
R Add `include_directories` argument to zip-ping functions May 14, 2019
inst
man Add `include_directories` argument to zip-ping functions May 14, 2019
src fix build for rtools40 (#25) fixes #24 Feb 27, 2019
tests Add `include_directories` argument to zip-ping functions May 14, 2019
.Rbuildignore
.gitignore Renaming external binaries Feb 23, 2019
.travis.yml
DESCRIPTION Bump to dev version May 13, 2019
Makefile
NAMESPACE Bg processes refinement Feb 23, 2019
NEWS.md
README.Rmd
README.md
appveyor.yml New functions: zipr and zipr_append Dec 19, 2017

README.md

zip

Cross-Platform ‘zip’ Compression

Linux Build Status Windows Build status CRAN RStudio mirror downloads Coverage Status

Installation

install.packages("zip")

Usage

library(zip)

Creating ZIP files

zip() creates a new ZIP archive. (It overwrites the output file if it exists.) Simply supply all directories and files that you want to include in the archive.

It makes sense to change to the top-level directory of the files before archiving them, so that the files are stored using a relative path name.

zip("sources.zip", c("R", "src"))
file.info("sources.zip")
#>              size isdir mode               mtime               ctime
#> sources.zip 87851 FALSE  644 2019-02-23 22:02:36 2019-02-23 22:02:36
#>                           atime uid gid       uname grname
#> sources.zip 2019-02-23 22:02:36 501  20 gaborcsardi  staff

Directories are added recursively by default.

zip_append() is similar to zip(), but it appends files to an existing ZIP archive.

Listing ZIP files

zip_list() lists files in a ZIP archive. It returns a data frame:

zip_list("sources.zip")
#>                filename compressed_size uncompressed_size
#> 1                    R/               0                 0
#> 2        R/assertions.R             125               296
#> 3           R/process.R            1383              4471
#> 4             R/utils.R             905              3047
#> 5               R/zip.R            2194              6763
#> 6                  src/               0                 0
#> 7            src/init.c             335               762
#> 8    src/install.libs.R             271               576
#> 9          src/Makevars             185               465
#> 10     src/Makevars.win             188               491
#> 11          src/miniz.c           55232            314589
#> 12          src/miniz.h           18113             66863
#> 13           src/rzip.c            2092              6344
#> 14           src/tools/               0                 0
#> 15 src/tools/cmdunzip.c             214               323
#> 16   src/tools/cmdzip.c             909              2599
#> 17            src/zip.c            3169             11295
#> 18            src/zip.h             504              1211
#>              timestamp permissions
#> 1  2019-02-23 22:00:10         755
#> 2  2019-02-22 22:11:46         644
#> 3  2019-02-23 22:00:10         644
#> 4  2019-02-22 22:27:58         644
#> 5  2019-02-23 20:35:36         644
#> 6  2019-02-23 22:02:32         755
#> 7  2019-02-22 22:11:46         644
#> 8  2019-02-23 20:35:36         644
#> 9  2019-02-23 20:35:36         644
#> 10 2019-02-23 20:35:36         644
#> 11 2019-02-23 01:38:12         755
#> 12 2019-02-22 22:11:46         644
#> 13 2019-02-23 20:35:36         644
#> 14 2019-02-23 22:02:32         755
#> 15 2019-02-23 20:35:36         644
#> 16 2019-02-23 20:35:36         644
#> 17 2019-02-23 20:35:36         644
#> 18 2019-02-23 20:35:36         644

Uncompressing ZIP files

unzip() uncompresses a ZIP archive:

exdir <- tempfile()
unzip("sources.zip", exdir = exdir)
dir(exdir)
#> [1] "R"   "src"

Compressing and uncompressing in background processes

You can use the zip_process() and unzip_process() functions to create background zip / unzip processes. These processes were implemented on top of the processx::process class, so they are pollable.

License

CC0

You can’t perform that action at this time.