Check if a file path can be used safely to create a file and write to it.
This is checked:
Does dirname(x)
exist?
Does no file under path x
exist?
Is dirname(x)
writable?
Paths are relative to the current working directory.
checkPathForOutput(x, overwrite = FALSE, extension = NULL)check_path_for_output(x, overwrite = FALSE, extension = NULL)
assertPathForOutput(
x,
overwrite = FALSE,
extension = NULL,
.var.name = vname(x),
add = NULL
)
assert_path_for_output(
x,
overwrite = FALSE,
extension = NULL,
.var.name = vname(x),
add = NULL
)
testPathForOutput(x, overwrite = FALSE, extension = NULL)
test_path_for_output(x, overwrite = FALSE, extension = NULL)
expect_path_for_output(
x,
overwrite = FALSE,
extension = NULL,
info = NULL,
label = vname(x)
)
Depending on the function prefix: If the check is successful, the functions
assertPathForOutput
/assert_path_for_output
return
x
invisibly, whereas
checkPathForOutput
/check_path_for_output
and
testPathForOutput
/test_path_for_output
return
TRUE
.
If the check is not successful,
assertPathForOutput
/assert_path_for_output
throws an error message,
testPathForOutput
/test_path_for_output
returns FALSE
,
and checkPathForOutput
/check_path_for_output
return a string with the error message.
The function expect_path_for_output
always returns an
[any]
Object to check.
[logical(1)
]
If TRUE
, an existing file in place is allowed if it
it is both readable and writable.
Default is FALSE
.
[character(1)
]
Extension of the file, e.g. “txt” or “tar.gz”.
[character(1)
]
Name of the checked object to print in assertions. Defaults to
the heuristic implemented in vname
.
[AssertCollection
]
Collection to store assertion messages. See AssertCollection
.
[character(1)
]
Extra information to be included in the message for the testthat reporter.
See expect_that
.
[character(1)
]
Name of the checked object to print in messages. Defaults to
the heuristic implemented in vname
.
Other filesystem:
checkAccess()
,
checkDirectoryExists()
,
checkFileExists()
# Can we create a file in the tempdir?
testPathForOutput(file.path(tempdir(), "process.log"))
Run the code above in your browser using DataLab