unzip {utils}R Documentation

Extract or List Zip Archives


Extract files from or list a zip archive.


unzip(zipfile, files = NULL, list = FALSE, overwrite = TRUE,
      junkpaths = FALSE, exdir = ".", unzip = "internal",
      setTimes = FALSE)



The pathname of the zip file: tilde expansion (see path.expand) will be performed.


A character vector of recorded filepaths to be extracted: the default is to extract all files.


If TRUE, list the files and extract none. The equivalent of unzip -l.


If TRUE, overwrite existing files (the equivalent of unzip -o), otherwise ignore such files (the equivalent of unzip -n).


If TRUE, use only the basename of the stored filepath when extracting. The equivalent of unzip -j.


The directory to extract files to (the equivalent of unzip -d). It will be created if necessary.


The method to be used. An alternative is to use getOption("unzip"), which on a Unix-alike may be set to the path to a unzip program.


logical. For the internal method only, should the file times be set based on the times in the zip file? (NB: this applies to included files, not to directories.)


If list = TRUE, a data frame with columns Name (character) Length (the size of the uncompressed file, numeric) and Date (of class "POSIXct").

Otherwise for the "internal" method, a character vector of the filepaths extracted to, invisibly.


The default internal method is a minimal implementation, principally designed for Windows' users to be able to unpack Windows binary packages without external software. It does not (for example) support Unicode filenames as introduced in zip 3.0: for that use unzip = "unzip" with unzip 6.00 or later. It does have some support for bzip2 compression and > 2GB zip files (but not >= 4GB files pre-compression contained in a zip file: like many builds of unzip it may truncate these, in R's case with a warning if possible).

If unzip specifies a program, the format of the dates listed with list = TRUE is unknown (on Windows it can even depend on the current locale) and the return values could be NA or expressed in the wrong time zone or misinterpreted (the latter being far less likely as from unzip 6.00).

File times in zip files are stored in the style of MS-DOS, as local times to an accuracy of 2 seconds. This is not very useful when transferring zip files between machines (even across continents), so we chose not to restore them by default.


The internal C code uses zlib and is in particular based on the contributed ‘⁠minizip⁠’ application in the zlib sources (from https://zlib.net/) by Gilles Vollant.

See Also

unz to read a single component from a zip file.

zip for packing, i.e., the “inverse” of unzip(); further untar and tar, the corresponding pair for (un)packing tar archives (“tarballs”) such as R source packages.

[Package utils version 4.4.1 Index]