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

Uwe Ligges ligges at statistik.uni-dortmund.de
Mon Jul 21 21:02:39 MEST 2003


richard_raubertas at merck.com wrote:
> I am using R 1.7.1 on Windows XP Pro.
> 
> The 'overwrite=FALSE' argument appears to be ignored in
> file.copy():
> 
> 
>>file.exists(c("file1.txt", "file2.txt"))
> 
> [1] TRUE TRUE
> 
>>file.copy(from="file2.txt", to="file1.txt", overwrite=FALSE)
> 
> [1] TRUE
> 
> 
> and sure enough, file1.txt has been overwritten.
> 
> Rich Raubertas
> Biometrics Research, RY33-300
> Merck & Co.
> 
> ------------------------------------------------------------------------------
> Notice: This e-mail message, together with any attachments, ...{{dropped}}
> 
> ______________________________________________
> R-devel at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-devel

Fix:

     if (!overwrite) {
         if (nt > nf)
             from <- rep(from, length = nt)
         exists <- file.exists(from)
         from <- from[exists]
         to <- to[exists]
     }
     file.create(to)
     file.append(to, from)


should be something like


     if (!overwrite) {
         if (nt > nf)
             from <- rep(from, length = nt)
         exists <- file.exists(to)
         if(sum(exists))
             warning("File(s) \"", paste(to[exists], collapse = ", "), 
"\" already exist(s)")
         from <- from[!exists]
         to <- to[!exists]
     }
     if (length(to)) {
         file.create(to)
         file.append(to, from)
     }


Uwe Ligges



More information about the R-devel mailing list