R Under development (unstable) (2023-11-16 r85542 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library("R.utils") Loading required package: R.oo Loading required package: R.methodsS3 R.methodsS3 v1.8.2 (2022-06-13 22:00:14 UTC) successfully loaded. See ?R.methodsS3 for help. R.oo v1.25.0 (2022-06-12 02:20:02 UTC) successfully loaded. See ?R.oo for help. Attaching package: 'R.oo' The following object is masked from 'package:R.methodsS3': throw The following objects are masked from 'package:methods': getClasses, getMethods The following objects are masked from 'package:base': attach, detach, load, save R.utils v2.12.3 successfully loaded. See ?R.utils for help. Attaching package: 'R.utils' The following object is masked from 'package:utils': timestamp The following objects are masked from 'package:base': cat, commandArgs, getOption, isOpen, nullfile, parse, warnings > > # Create file > cat("Hello", file="hello.txt") > stopifnot(isFile("hello.txt")) > > # Copy file > copyFile("hello.txt", "hello2.txt", verbose=TRUE) Copying file safely... Source: hello.txt Destination: hello2.txt Copying to temporary file using file.copy()... Copying to temporary file using file.copy()...done Renaming temporary file to destination name... Renaming temporary file to destination name...done Validating destination file... Validating destination file...done Copying file safely...done [1] TRUE > stopifnot(isFile("hello2.txt")) > > # Copy file > stopifnot(all(isFile(c("hello.txt", "hello2.txt")))) > > # Copy file by overwriting existing file > copyFile("hello.txt", "hello2.txt", overwrite=TRUE) [1] TRUE > stopifnot(isFile("hello2.txt")) > > # Copy file to directory > pathD <- tempdir() > copyFile("hello.txt", pathD) [1] TRUE > pathnameD <- file.path(pathD, "hello.txt") > stopifnot(isFile(pathnameD)) > file.remove(pathnameD) [1] TRUE > > # Rename file > renameFile("hello2.txt", "hello3.txt", verbose=TRUE) Renaming file safely... Pathname: hello2.txt New pathname: hello3.txt Renaming file using file.rename()... Result: TRUE Renaming file using file.rename()...done Validating... Validating...done Renaming file safely...done [1] TRUE > stopifnot(!isFile("hello2.txt")) > stopifnot(isFile("hello3.txt")) > > # Rename file by overwriting existing file > renameFile("hello3.txt", "hello.txt", overwrite=TRUE) [1] TRUE > stopifnot(!isFile("hello3.txt")) > stopifnot(isFile("hello.txt")) > > > # Move file to directory (and back) > # NOTE: We are not moving file to tempdir() just in case > # that is on a different file system which in case we > # risk getting error "cannot rename file reason 'Invalid > # cross-device link' (some Unix problem) > pathD <- "foo" > mkdirs(pathD) [1] TRUE > renameFile("hello.txt", pathD) [1] TRUE > pathnameD <- file.path(pathD, "hello.txt") > stopifnot(isFile(pathnameD)) > renameFile(pathnameD, ".") [1] TRUE > > > ## Exception handling > res <- try(copyFile("hello.txt", "hello.txt"), silent=TRUE) > stopifnot(inherits(res, "try-error")) > > > # Cleanup > removeDirectory("foo") > file.remove("hello.txt") [1] TRUE > > proc.time() user system elapsed 0.81 5.87 7.96