R: File Manipulation

files {base} | R Documentation

## File Manipulation

### Description

These functions provide a low-level interface to the computer's file system.

### Usage

    file.create(...)
    file.exists(...)
    file.remove(...)
    file.rename(from, to)
    file.append(file1, file2)
    file.copy(from, to, overwrite = FALSE)
    dir.create(path)
    basename(path)
    dirname(path)
    path.expand(path)

### Arguments

`..., file1, file2, from, to, path` | character vectors, containing file names.
`overwrite` | logical; should the destination files be overwritten?

### Details

The `...` arguments are concatenated to form one character string: you can specify the files separately or as one vector.

`file.create` creates files with the given names if they do not already exist and truncates them if they do. It returns a logical vector indicating the success or failure of the operation for each file.

`file.exists` returns a logical vector indicating whether the files named by its argument exist.

`file.remove` attempts to remove the files named in its argument. It returns a logical vector indicating whether or not it succeeded in removing each file.

`file.rename` attempts to rename a file. It returns a logical value indicating whether the operation succeeded.

`file.append` attempts to append the files named by its second argument to those named by its first. The R subscript recycling rule is used to align names given in vectors of different lengths.

`file.copy` works in a similar way to `file.append` but with the arguments in the natural order for copying. Copying to existing destination files is skipped unless `overwrite = TRUE`. The `to` argument can specify a single existing directory.

`dir.create` creates the last element of the path. It returns a logical, true for success.

`basename` removes all of the path up to the last path separator (if any).

`dirname` returns the part of the `path` up to (but excluding) the last path separator, or `"."` if there is no path separator. Tilde expansion is done: see the description for `path.expand` below.

In both `basename` and `dirname` trailing file separators are removed before dissecting the path, and for `dirname` any trailing file separators are removed from the result.

`path.expand` expands path(s) by replacing a leading tilde by the user's home directory (if defined on that platform). On some Unix versions, a leading `~user` will expand to the home directory of `user`, but not on Unix versions without `readline` installed.

### Author(s)

Ross Ihaka, Brian Ripley

### See Also

`file.info`, `file.access`, `file.path`, `file.show`, `list.files`, `unlink`.

### Examples

    cat("file A\n", file="A")
    cat("file B\n", file="B")
    file.append("A", "B")
    file.create("A")
    file.append("A", rep("B", 10))
    if(interactive()) file.show("A")
    file.copy("A", "C")
    dir.create("tmp")
    file.copy(c("A", "B"), "tmp")
    unlink("tmp", recursive=TRUE)
    file.remove("A", "B", "C")

    basename(file.path("","p1","p2","p3","filename"))
    dirname(file.path("","p1","p2","p3","filename"))

    path.expand("~/foo")

[Package Contents]