Learn R Programming

this.path (version 2.5.0)

relpath: Make a Path Relative to Another

Description

When working with this.path, you will be dealing with a lot of absolute paths. These paths are not portable for saving within files nor tables, so convert them to relative paths with relpath().

Usage

relpath(path, relative.to = getwd())
relpath(path, relative.to = normalizePath(getwd(), "/", TRUE))

rel2here(path, local = FALSE, n = 0, envir = parent.frame(n + 1), matchThisEnv = getOption("topLevelEnvironment"), srcfile = if (n) sys.parent(n) else 0)

rel2proj(path, local = FALSE, n = 0, envir = parent.frame(n + 1), matchThisEnv = getOption("topLevelEnvironment"), srcfile = if (n) sys.parent(n) else 0)

Value

character vector of the same length as path.

Arguments

path

character vector of file / / URL pathnames.

relative.to

character string; the file / / URL pathname to make path relative to.

local, n, envir, matchThisEnv, srcfile

See ?this.path().

Details

Tilde-expansion (see ?path.expand()) is first done on path and relative.to.

If path and relative.to are equivalent, "." will be returned. If path and relative.to have no base in common, the normalized path will be returned.

Examples

Run this code
if (FALSE) {
relpath(
    c(
        ## paths which are equivalent will return "."
        "/home/effective_user/Documents/this.path/man",


        ## paths which have no base in common return as themselves
        paste0("https://raw.githubusercontent.com/ArcadeAntics/",
               "this.path/main/tests/sys-path-with-urls.R"),
        "//host-name/share-name/path/to/file",


        "/home/effective_user/Documents/testing",
        "/home/effective_user",
        "/home/effective_user/Documents/R/thispath.R"
    ),
    relative.to = "/home/effective_user/Documents/this.path/man"
)
}

Run the code above in your browser using DataLab