file.access {base} | R Documentation |
Utility function to access information about files on the user's file systems.
file.access(names, mode = 0)
names |
character vector containing file names. |
mode |
integer specifying access mode required. |
Tilde-expansion is done on names
: see path.expand
.
The mode
value can be the exclusive or of the following values
As from R 2.6.0 this function no longer uses the C function
_access
in ‘msvcrt.dll’, but has been rewritten using
Win32 API functions.
Windows does not have the concept of an ‘executable file’, so
this function regards directories and files with extension
‘.exe’, ‘.bat’, ‘.cmd’ and ‘.com’ as executable.
(system
makes the same assumption.)
Please note that it is not good to use this function to test before
trying to open a file. On a multi-tasking system, it is possible that
the accessibility of a file will change between the time you call
file.access()
and the time you try to open the file. It is
better to wrap file open attempts in try
.
An integer vector with values 0
for success and -1
for failure.
This is intended as a replacement for the S-PLUS function
access
, a wrapper for the C function of the same name, which
explains the return value encoding. Note that
the return value is false for success.
fa <- file.access(dir(".")) table(fa) # count successes & failures d <- dir(file.path(R.home(), "bin")) df <- dir(file.path(R.home(), "bin"), full.names = TRUE) d[file.access(df, 0) == 0] # all exist d[file.access(df, 1) == 0] # some are executable, some are not d[file.access(df, 2) == 0] # hopefully all are readable d[file.access(df, 4) == 0] # they may or may not be writeable