【发布时间】:2011-01-07 10:02:59
【问题描述】:
我想知道是否可以从文件夹创建一个 zip 文件。我有一个文件夹,在这个文件夹中有四个文件夹,里面有不同类型的文件。现在我想用它们的文件递归压缩这四个文件夹。
我尝试了save() 和gzip(),但他们没有做我想做的事。
有人给我提示吗?
【问题讨论】:
标签: r
我想知道是否可以从文件夹创建一个 zip 文件。我有一个文件夹,在这个文件夹中有四个文件夹,里面有不同类型的文件。现在我想用它们的文件递归压缩这四个文件夹。
我尝试了save() 和gzip(),但他们没有做我想做的事。
有人给我提示吗?
【问题讨论】:
标签: r
确定 tar 命令的范围。虽然它不是 zip,但压缩的 tar 文件也一样好。
tarfile <- 'newfile.tgz'
tar(tarfile,'/path/of/dir/to/tar/up',compression='gzip')
【讨论】:
Omegahat 的 Rcompression 包可以做到这一点。这是一个最小的例子:
library(Rcompression)
d <- "C:/my_data"
files <- list.files(d, recursive=TRUE)
zip("myarchive.zip", files=paste(d, files, sep="/"), altNames=files)
更多示例请参见?zip。
【讨论】:
file.path 而不是paste(..., sep = "/")。
您可以在odfWeave package 的来源中寻找提示。
如果你加载库并输入odfWeave,你会得到源代码,它不会太长,并且通过系统调用实现了压缩和解压缩。
从这些来源,您可以执行以下操作:
filename = '' # set archive filename
loc = '' # set location, if not done before
setwd(loc)
zipCmd = paste("zip -r ", filename, " .", sep='')
system(zipCmd, invisible = TRUE)
当然,必须安装zip。
【讨论】: