R: Compressing and decompressing files

compressFile {R.utils} | R Documentation

## Compressing and decompressing files

### Description

Compressing and decompressing files such as gzip:ed and bzip2:ed files.

NOTE: The default (`remove=TRUE`) behavior is that the input file is removed after that the output file is fully created and closed.

### Usage

     ## Default S3 method:
    compressFile(filename, destname=sprintf("%s.%s", filename, ext), ext, FUN,
      temporary=FALSE, skip=FALSE, overwrite=FALSE, remove=TRUE, BFR.SIZE=1e+07, ...)
     ## Default S3 method:
    decompressFile(filename, destname=gsub(sprintf("[.]%s$", ext), "", filename,
      ignore.case = TRUE), ext, FUN, temporary=FALSE, skip=FALSE, overwrite=FALSE,
      remove=TRUE, BFR.SIZE=1e+07, ...)
     ## Default S3 method:
    isCompressedFile(filename, method=c("extension", "content"), ext, fileClass, ...)
     ## Default S3 method:
    bzip2(filename, ..., ext="bz2", FUN=bzfile)
     ## Default S3 method:
    bunzip2(filename, ..., ext="bz2", FUN=bzfile)
     ## Default S3 method:
    gzip(filename, ..., ext="gz", FUN=gzfile)
     ## Default S3 method:
    gunzip(filename, ..., ext="gz", FUN=gzfile)

### Arguments

`filename` | Pathname of input file.
`destname` | Pathname of output file.
`temporary` | If `TRUE`, the output file is created in a temporary directory.
`skip` | If `TRUE` and the output file already exists, the output file is returned as is.
`overwrite` | If `TRUE` and the output file already exists, the file is silently overwritten, otherwise an exception is thrown (unless `skip` is `TRUE`).
`remove` | If `TRUE`, the input file is removed afterward, otherwise not.
`BFR.SIZE` | The number of bytes read in each chunk.
`...` | Passed to the underlying function or alternatively not used.
`method` | A `character` string specifying how to infer whether a file is compressed or not.
`ext, fileClass, FUN` | (internal) Filename extension, file class, and a connection `function` used to read from/write to file.

### Details

Internally `bzfile()` and `gzfile()` (see `connections`) are used to read (write) files. If the process is interrupted before completed, the partially written output file is automatically removed.

### Value

Returns the pathname of the output file. The number of bytes processed is returned as an attribute.

`isCompressedFile()`, `isGzipped()` and `isBzipped()` return a `logical`. Note that with `method = "extension"` (default), only the filename extension is used to infer whether the file is compressed or not. Specifically, it does not matter whether the file actually exists or not.

### Author(s)

Henrik Bengtsson

### Examples

      ## bzip2
      cat(file="foo.txt", "Hello world!")
      print(isBzipped("foo.txt"))
      print(isBzipped("foo.txt.bz2"))

      bzip2("foo.txt")
      print(file.info("foo.txt.bz2"))
      print(isBzipped("foo.txt"))
      print(isBzipped("foo.txt.bz2"))

      bunzip2("foo.txt.bz2")
      print(file.info("foo.txt"))

      ## gzip
      cat(file="foo.txt", "Hello world!")
      print(isGzipped("foo.txt"))
      print(isGzipped("foo.txt.gz"))

      gzip("foo.txt")
      print(file.info("foo.txt.gz"))
      print(isGzipped("foo.txt"))
      print(isGzipped("foo.txt.gz"))

      gunzip("foo.txt.gz")
      print(file.info("foo.txt"))

      ## Cleanup
      file.remove("foo.txt")

[Package R.utils version 2.7.0 Index]