Rev 54371 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/base/man/files.Rd% Part of the R package, http://www.R-project.org% Copyright 1995-2011 R Core Development Team% Distributed under GPL 2 or later\name{files2}\alias{dir.create}\alias{Sys.chmod}\alias{Sys.umask}\concept{directory}\concept{mkdir}\title{Manipulation of Directories and File Permissions}\usage{dir.create(path, showWarnings = TRUE, recursive = FALSE, mode = "0777")Sys.chmod(paths, mode = "0777")Sys.umask(mode = "0000")}\arguments{\item{path}{a character vector containing a single path name.}\item{paths}{character vectors containing file or directory paths.}\item{showWarnings}{logical; should the warnings on failure be shown?}\item{recursive}{logical. Should elements of the path other than thelast be created? If true, like Unix's \command{mkdir -p}.}\item{mode}{the file mode to be used on Unix-alikes: it will becoerced by \code{\link{as.octmode}}. For \code{Sys.chmod} it isrecycled along \code{paths}.}}\description{These functions provide a low-level interface to the computer'sfile system.}\details{\code{dir.create} creates the last element of the path, unless\code{recursive = TRUE}. Trailing path separators are discarded.#ifdef windowsOn Windows drives are allowed in the path specification and unlessthe path is rooted, it will be interpreted relative to the currentdirectory on that drive. \code{mode} is ignored on Windows.#endif#ifdef unixThe mode will be modified by the \code{umask} setting in the same wayas for the system function \code{mkdir}. What modes can be set isOS-dependent, and it is unsafe to assume that more than three octaldigits will be used. For more details see your OS's documentation on thesystem call \code{mkdir}, e.g. \command{man 2 mkdir} (and not that onthe command-line utility of that name).#endif\code{Sys.chmod} sets the file permissions of one or more files.#ifdef unixIt may not be supported on a system (when a warning is issued).See the comments for \code{dir.create} for how modes are interpreted.Changing mode on a symbolic link is unlikely to work (nor benecessary). For more details see your OS's documentation on thesystem call \code{chmod}, e.g. \command{man 2 chmod} (and not that onthe command-line utility of that name). Note that it is usual for themode set \bold{not} to be modified by the current \code{umask}.#endif#ifdef windowsThe interpretation of \code{mode} in the Windows system function isnon-POSIX and only supports setting the read-only attribute of thefile. So \R interprets \code{mode} to mean set read-only if and onlyif \code{(mode & 0200) == 0} (interpreted in octal). Windows has a muchmore extensive system of file permissions on some file systems(e.g. versions of NTFS) which are unrelated to this system call.#endif\code{Sys.umask} sets the \code{umask}.#ifdef unixIt may not be supported (when a warning is issued and \code{"0000"}is returned). For more details see your OS's documentation on thesystem call \code{umask}, e.g. \command{man 2 umask}.#endif#ifdef windowsAll files on Windows are regarded as readable, and files beingexecutable is not a Windows concept. So \code{umask} only controlswhether a file is writable: a setting of \code{"200"} makes files (butnot directories) created subsequently read-only.#endif}\value{\code{dir.create} and \code{Sys.chmod} return invisibly a logical vectorindicating if the operation succeeded for each of the files attempted.Using a missing value for a path name will always be regarded as afailure. \code{dir.create} indicates failure if the directory alreadyexists. If \code{showWarnings = TRUE}, \code{dir.create} will give awarning for an unexpected failure (e.g. not for a missing value norfor an already existing component for \code{recursive = TRUE}).\code{Sys.umask} returns the previous value of the \code{umask},invisibly, as a length-one object of class \code{"\link{octmode}"}.}#ifdef windows\note{There is no guarantee that these functions will handle Windowsrelative paths of the form \file{d:path}: try \file{d:./path}instead. In particular, \file{d:} is not recognized as a directory.}#endif\author{Ross Ihaka, Brian Ripley}\seealso{\code{\link{file.info}}, \code{\link{file.exists}}, \code{\link{file.path}},\code{\link{list.files}}, \code{\link{unlink}},\code{\link{basename}}, \code{\link{path.expand}}.}\keyword{file}