webdav_move_file() moves or renames a file or
directory on the server using the WebDAV MOVE method, with an
overwrite argument.webdav_copy_file() gained an overwrite
argument (default TRUE, matching the WebDAV protocol
default).FALSE (NULL for
webdav_list_files()). Previously,
webdav_copy_file(), webdav_download_file() and
webdav_create_directory() aborted on server failures.webdav_list_files() no longer fails on R < 4.4.0:
the %||% operator it relied on only exists in base R from
4.4.0 onward, and the package now carries its own definition.webdav_list_files() now returns correct
display_name values when the listed folder’s name contains
regex metacharacters (e.g. "pasta (1)"); the folder prefix
is removed as a fixed string instead of a regex.webdav_copy_file() now percent-encodes the
Destination header, so copying to paths with spaces or
non-ASCII characters works. The request URL was already encoded; the
header was being sent raw.webdav_upload_file() now prints “root” (instead of an
empty path) in the success message when uploading to the server
root.webdav_download_file() streams the response straight to
disk (via a temporary file, so a failed request never leaves a partial
file behind) instead of loading the whole body into memory, and
validates that the destination directory exists.webdav_upload_file() streams the file from disk with
httr2::req_body_file() instead of reading it entirely into
memory, and uses httr2::req_timeout() for the timeout.tests/testthat/), including ownCloud-style and IIS-style
(isFolder) fixtures and mocked-request tests for every HTTP
verb.LazyData from DESCRIPTION (the package has no
data directory).check_and_load_package() is now deprecated. All
required packages are declared in DESCRIPTION and loaded
automatically by R. Calling this function will issue a deprecation
warning.message() /
stop() to the cli package
(cli::cli_inform(), cli::cli_alert_success(),
cli::cli_warn(), cli::cli_abort()), providing
richer formatted output with semantic markup for URLs, file paths, and
argument names.cli to Imports in DESCRIPTION.httr2::resp_status() import to NAMESPACE.handle_response() to use
httr2::resp_status() instead of the legacy
response$status_code accessor (httr v1 syntax).check_and_load_package() inside all exported functions —
dependencies declared in Imports are guaranteed to be
available and do not need manual loading.webdav_list_files() function
for better compatibility and robustness:
d, D, or other), preventing
XPath errors like Undefined namespace prefix.xml2::as_list() to reliably parse the XML response
structure.content_length is safely parsed and padded with
NA where missing (e.g., for directories), preventing errors
when creating the resulting tibble.is_folder, correctly identifying
whether each resource is a directory.display_name, full_path,
creation_date, etc.).Special thanks to Adrian Jusepeitis (University of
Jena, Germany) for reporting two key issues related to XML namespace
parsing and missing metadata in webdav_list_files(), and
for proposing initial fixes that inspired the improvements in this
release.
webdav_download_file() to download files from a WebDAV
server to a local directory.
verbose = TRUE) provides detailed output
of the download process, including the file path on the server and local
destination.NEWS.md file to track changes to the
package.