Nothing
#' @description Determine which specific type of files are present in a certain
#' directory.
#' @return A list with four components: the complete path, the files, the file
#' names and the file extensions
#' @noRd
`treatPath` <- function(path, type = "*", single = FALSE, check = TRUE) {
if (length(path) > 1) {
# if (type == "R") {
# admisc::stopError("The <codeBook> argument should contain a single path to the list object.")
# }
if (type == "csv") {
admisc::stopError(
"The argument <csv> should contain a single path to the .csv file."
)
}
}
if (!is.character(path)) {
admisc::stopError("A path should be specified in a string.")
}
currdir <- getwd()
lastpart <- basename(path)
# normalizePath() deals with the symbolic links, relative paths and
# absolute paths
pathname <- suppressWarnings(normalizePath(dirname(path), winslash = "/"))
# check if a path exists, before the lastpart
pathexists <- pathname != "."
if (pathexists) {
if (!file.exists(pathname)) {
if (check) {
admisc::stopError(
paste(
"Cannot find the path up to \"",
pathname,
"\".\n",
"Please check that path, or try changing the",
"working directory.",
sep = ""
)
)
}
else {
pathname <- file.path(getwd(), pathname)
}
}
}
allfiles <- FALSE
if (!file.exists(file.path(pathname, lastpart))) {
# something like /path/to/*.R
# where lastpart is *.R
filesplit <- unlist(strsplit(lastpart, split = "\\."))
if (length(filesplit) > 2) {
# multiple dots inside the file name
filesplit <- c(
paste(filesplit[-length(filesplit)], collapse = "."),
filesplit[length(filesplit)]
)
}
else if (length(filesplit) == 2) {
if (filesplit[1] == "*") {
allfiles <- TRUE
type <- filesplit[2]
lastpart <- ""
}
}
if (!allfiles & check) {
admisc::stopError(
paste(
"There is no \"",
lastpart,
"\" in the directory \"",
ifelse(
pathname == ".",
getwd(),
pathname
),
"/\".",
sep = ""
)
)
}
fileobj <- list(
completePath = pathname,
files = lastpart,
filenames = filesplit[1],
fileext = toupper(filesplit[2])
)
}
else {
## file_test() determines if a file or a directory
if (file_test("-d", file.path(pathname, lastpart))) {
if (single) {
admisc::stopError(
"A file name should be provided, not a directory."
)
}
fileobj <- getFiles(
path = file.path(pathname, lastpart),
type = type
)
}
else {
if (
type != "*" &&
toupper(type) != toupper(
tools::file_ext(file.path(pathname, lastpart))
)
) {
return(paste0("Wrong file type, it should be ", type, "."))
}
fileobj <- getFiles(
path = file.path(pathname, lastpart),
type = type
)
}
}
return(fileobj)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.