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")