file_ext
File Utilities

### Description

Some file utilities

### Usage

    file_ext(x)
    file_path_as_absolute(x)
    file_path_sans_ext(x, compression = FALSE)
    list_files_with_exts(dir, exts, all.files = FALSE, full.names = TRUE)
    list_files_with_type(dir, type, all.files = FALSE, full.names = TRUE,
        OS_subdirs = .OStype())

### Arguments

x | a character vector specifying the file names or paths. For file_path_as_absolute, only single string is supported at present.
compression | a logical value. If TRUE, the extensions "gz", "bz2" and "xz" will be trimmed before checking extensions.
dir | a character vector specifying the file directories.
exts | a character vector specifying the file extensions.

all.files | a logical value. If FALSE(the default), only visible (non-hidden) file or directory names are returned. Otherwise, the entire contents of directory are returned. (Hidden files or directories are those with names that begin with a period.)
full.names | a logical value. If TRUE(the default), the directory path is prepended to the returned names. Otherwise, only the file or directory name is in the return value.
type | a character string specifying the file type. The supported file type could be code("code"), data("data"), demo("demo"), documentations("docs") and vignette("vignette"). See details as below.

OS_subdirs | a character string specifying the OS-specific subdirectories when listing code and documentation files. See details as below.

### Details

file_ext returns the file extensions (the letters and numbers after the period in the base name of the file).
file_path_as_absolute turns a possibly relative file path absolute, performing tilde expansion if necessary. The file must exist.
file_path_sans_ext returns the file paths without extensions (and without the period before the extension if there is an extension). Only purely alphanumeric extensions are recognized. If compression is TRUE, the extensions "gz", "bz2" and "xz" will be trimmed (along with the period preceding the compression extension) before checking extensions.
list_files_with_exts returns the paths or names of the files in dir with extension in exts. Might be in a zipped directory on Windows.
list_files_with_type returns a character vector with the paths of the files in dir of type type. The supported type could be "code", "data", "demo", "docs" and "vignette". All these types could be mapped to some groups of file extensions. See following table:

type | extensions
"code" | "R", "r", "S", "s", "q"
"data" | "R", "r", "RData", "rdata", "rda", "tab", "txt", "TXT", "tab.gz", "txt.gz", "tab.bz2", "txt.bz2", "tab.xz", "txt.xz", "csv", "CSV", "csv.gz", "csv.bz2", "csv.xz"
"demo" | "R", "r"
"docs" | "Rd", "rd", "Rd.gz", "rd.gz"
"vignette" | "Rnw", "rnw", "Snw", "snw", "Rtex","rtex", "Stex", "stex", "Rmd"

And then list_files_with_exts could be called to get the file paths. Additionally, when listing code(type="code") and documentation(type = "docs") files, files in OS-specific subdirectories are included (if present) according to the value of OS_subdirs. The default .OStype() is try to read system environment variable "R_OSTYPE". If this variable is not set, .Platform$OS.type is used indeed. Only file names leading with alphanumeric are valid for type = "code" or "docs" and only file names leading with alphabetic are valid for type = "demo".
Value
file_ext returns a character vector representing the file extensions.
file_path_as_absolute returns a character string representing the absolute file path.
file_path_sans_ext returns a character vector representing the file paths without extensions.
list_files_with_exts and list_files_with_type return a character vector representing the paths or names of the files.
See Also
normalizePath, list.files, file.path
Examples

    file_ext(c("fileA.txt", "fileB.png", "DESCRIPTION"))
    file_path_sans_ext(c("fileC.csv", "fileD.csv.gz"))
    file_path_sans_ext(c("fileC.csv", "fileD.csv.gz"), compress=TRUE)
    ## Not run:
    file_path_as_absolute(".")
    list_files_with_exts(R.home("share/doc/html"), ext="css")
    list_files_with_type(R.home("etc"), type="code")

    ## End(Not run)

Package tools version 6.1.5-18
Package Index