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.
[New Feature] Added a new function 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.Added examples using demo WebDav server.
NEWS.md file to track changes to the package.