normalizePath
Express File Paths in Canonical Form
Description
Convert file paths to canonical form on the Unix or Windows platforms.
Usage
normalizePath(path, winslash="\\", mustWork = NA)
Arguments
path |
a character vector giving one or more path names.
|
winslash |
a character string giving the path separator to use when forming canonical
paths. On Windows, this argument must be the single string "/" or
"\\". On Unix, this argument is ignored.
|
mustWork |
a logical value specifying whether the files in path must exist.
- If NA (the default), a warning is generated for each file
that does not exist.
- If TRUE, an error is generated if any of the specified files
does not exist.
- If FALSE, no errors or warnings are generated.
|
Details
The file paths are passed to path.expand to expand any leading
tilde "~" character.
Any file paths that are relative paths are interpreted relative to
the current working directory.
If a file path specifies an existing file or directory,
the path is converted to an absolute path in the canonical form
without "./" or "../" components. If a file path does not specify an
existing file or directory, it is not changed.
- On the Unix platform, symbolic links in a file path are followed
to produce the canonical path.
Thus, if the file "~/aa" is a link to the file "/tmp", then
normalizePath("~/aa/cc") produces "/tmp/cc" (if this file exists).
- On the Windows platform, short file names are converted to long file names.
Value
returns a character vector containing the canonical form of the file paths.
See Also
Examples
# on Windows, gives the user the directory using "/" path separator
normalizePath("~","/")
# gives absolute file name of "aa", if this file exists
# otherwise just returns "aa"
normalizePath("aa", mustWork=FALSE)
# gives absolute file name of "aa", if this file exists
# otherwise gives a warning and returns "aa"
normalizePath("aa", mustWork=NA)