[Rd] Bug in file.copy: overwrite=FALSE ignored (PR#3529)

Duncan Murdoch dmurdoch at pair.com
Mon Jul 21 16:18:16 MEST 2003


On Mon, 21 Jul 2003 14:57:36 -0400, Duncan Murdoch <dmurdoch at pair.com>
wrote :

>Here's my rewrite:
>
>file.copy <- function(from, to, overwrite=FALSE)
>{
>    if (!(nf <- length(from))) stop("no files to copy from")
>    if (!(nt <- length(to)))   stop("no files to copy to")
>    if (nt == 1 && file.exists(to) && file.info(to)$isdir)
>        to <- file.path(to, from)
>    else if (nf > nt)  stop("more `from' files than `to' files")
>    if(nt > nf) from <- rep(from, length = nt)
>    if (!overwrite) okay <- !file.exists(to)
>    else okay <- rep(TRUE, length(to))
>     
>    file.create(to[okay])
>    okay[okay] <- file.append(to[okay], from[okay])
>    okay
>}

This isn't quite right either; it doesn't handle the case of no
eligible files or the case of copying a file onto itself properly.
The first is easy to fix (copying Uwe's test);  I think I'll just make
the second illegal.

Duncan Murdoch



More information about the R-devel mailing list