| files {base} | R Documentation |
These functions provide a low-level interface to the computer's file system.
file.create(..., showWarnings = TRUE)
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,
mode = "0777")
Sys.chmod(paths, mode = "0777")
Sys.umask(mode = "0000")
..., file1, file2, from, to, paths |
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. |
mode |
the file mode to be used on Unix-alikes: it will be
coerced by as.octmode. |
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. They are created with the
maximal permissions allowed by the umask setting.
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.
On most platforms ‘file’ includes empty directories,
symbolic links, fifos and sockets.
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.
The mode will be modified by the umask setting in the same way
as for the system function mkdir. What modes can be set is
OS-dependent, and it is unsafe to assume that more than three octal
digits will be used. For more details see your OS's documentation on the
system call mkdir (and not that on the command-line utility of
that name).
Sys.chmod sets the file permissions of one or more files.
It may not be supported (when a warning is issued).
See the comments for dir.create for how modes are interpreted.
Changing mode on a symbolic link is unlikely to work (nor be
necessary). For more details see your OS's documentation on the
system call chmod (and not that on the command-line utility of
that name).
Sys.umask sets the umask.
It may not be supported (when a warning is issued and "0000"
returned). For more details see your OS's documentation on the
system call umask.
dir.create and file.rename return a logical,
true for success.
Sys.umask returns the previous value of the umask,
invisibly, as a length-one object of class "octmode".
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.
If showWarnings = TRUE, file.create and
dir.create will give a warning for an unexpected failure
(e.g. not for a missing value nor for an already existing component for
dir.create(recursive = TRUE)).
Using a missing value for a file or path name will always be regarded
as a failure.
Ross Ihaka, Brian Ripley
file.info, file.access, file.path,
file.show, list.files,
unlink, basename, path.expand.
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")