R: File and Directory Manipulation

files {base} | R Documentation

## File and Directory 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)
    file.symlink(from, to)
    dir.create(path, showWarnings = TRUE, recursive = FALSE)

### Arguments

`..., file1, file2, from, to` | character vectors, containing file names or paths.
`path` | a character vector containing a single path name.
`overwrite` | logical; should the destination files be overwritten?
`showWarnings` | logical; should the warnings on failure be shown?
`recursive` | logical: should elements of the path other than the last be created? If true, like Unix's `mkdir -p`.

### Details

The `...` arguments are concatenated to form one character string: you can specify the files separately or as one vector. All of these functions expand path names: see `path.expand`.

`file.create` creates files with the given names if they do not already exist and truncates them if they do.

`file.exists` returns a logical vector indicating whether the files named by its argument exist. (Here ‘exists’ is in the sense of the system's `stat` call: a file will be reported as existing only if you have the permissions needed by `stat`. Existence can also be checked by `file.access`, which might use different permissions and so obtain a different result. Note that the existence of a file does not imply that it is readable: for that use `file.access`.)

`file.remove` attempts to remove the files named in its argument.

`file.rename` attempts to rename a single file.

`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.

`file.symlink` makes symbolic links on those Unix-like platforms which support them. The `to` argument can specify a single existing directory.

`dir.create` creates the last element of the path, unless `recursive = TRUE`. Trailing path separators are removed.

### Value

`dir.create` and `file.rename` return a logical, true for success.
The remaining functions return a logical vector indicating which operation succeeded for each of the files attempted.
`dir.create` will return failure if the directory already exists.

### Author(s)

Ross Ihaka, Brian Ripley

### See Also

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

`file_test`.

### 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")
    list.files("tmp")
    setwd("tmp")
    file.remove("B")
    file.symlink(file.path("..", c("A", "B")), ".")
    setwd("..")
    unlink("tmp", recursive=TRUE)
    file.remove("A", "B", "C")

[Package base version 2.6.2 Index]