Gábor Csárdi
2017-Dec-20 13:38 UTC
[Rd] utils::unzip ignores overwrite argument, effectively
It does give a warning, but then it overwrites the files, anyway. Reproducible example below. This is R 3.4.3, but it does not seem to be fixed in R-devel: https://github.com/wch/r-source/blob/4a9ca3e5ac6b19d7faa7c9290374f7604bf0ef64/src/main/dounzip.c#L171-L174 FYI, G?bor dir.create(tmp <- tempfile()) setwd(tmp) cat("old1\n", file = "file1") cat("old2\n", file = "file2") utils::zip("files.zip", c("file1", "file2")) #> adding: file1 (stored 0%) #> adding: file2 (stored 0%) unlink("file2") cat("new1\n", file = "file1") readLines("file1") #> [1] "new1" utils::unzip("files.zip", overwrite = FALSE) #> Warning message: #> In utils::unzip("files.zip", overwrite = FALSE) : #> not overwriting file './file1 readLines("file1") #> [1] "old1"
Tomas Kalibera
2018-Apr-04 14:42 UTC
[Rd] utils::unzip ignores overwrite argument, effectively
Thanks, fixed in R-devel. Tomas On 12/20/2017 02:38 PM, G?bor Cs?rdi wrote:> It does give a warning, but then it overwrites the files, anyway. > Reproducible example below. > > This is R 3.4.3, but it does not seem to be fixed in R-devel: > https://github.com/wch/r-source/blob/4a9ca3e5ac6b19d7faa7c9290374f7604bf0ef64/src/main/dounzip.c#L171-L174 > > FYI, > G?bor > > dir.create(tmp <- tempfile()) > setwd(tmp) > > cat("old1\n", file = "file1") > cat("old2\n", file = "file2") > > utils::zip("files.zip", c("file1", "file2")) > #> adding: file1 (stored 0%) > #> adding: file2 (stored 0%) > > unlink("file2") > cat("new1\n", file = "file1") > readLines("file1") > #> [1] "new1" > > utils::unzip("files.zip", overwrite = FALSE) > #> Warning message: > #> In utils::unzip("files.zip", overwrite = FALSE) : > #> not overwriting file './file1 > > readLines("file1") > #> [1] "old1" > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel