From ligges at statistik.uni-dortmund.de  Mon Jul 21 21:02:39 2003
From: ligges at statistik.uni-dortmund.de (Uwe Ligges)
Date: Mon Jul 21 20:01:32 2003
Subject: [Rd] Bug in file.copy: overwrite=FALSE ignored (PR#3529)
In-Reply-To: <200307211727.h6LHRYJH017824@pubhealth.ku.dk>
References: <200307211727.h6LHRYJH017824@pubhealth.ku.dk>
Message-ID: <3F1C2ABF.5050402@statistik.uni-dortmund.de>

richard_raubertas@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@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


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