[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