R中没有目录名称的Zip文件

时间:2018-08-09 15:17:16

标签: r zip

在工作目录中,我的文件夹名称以“ * _txt”结尾,其中包含文件夹内的文件,我希望将所有具有原始名称的文件夹和其中的文件压缩为zip。一切工作正常,但是.zip中的问题也包含目录名,我也不想,例如“ 1202_txt.zip \ 1202_txt \ files”必须为“ 1202_txt.zip \ files”

dir.create("1202_txt") # creating folder inside working directory

    array <- list.files( , "*_txt")

    for (i in 1:length(array)){
      name <- paste0(array[i],".zip")

      #zip(name, files = paste0(d,paste0("/",array[i])))
      zip(name, files = array[i])
    }

以上代码可用Creating zip file from folders in R 注意:可以跳过空文件夹

2 个答案:

答案 0 :(得分:1)

可以请您试试吗? (使用R 3.5.0和macOS High Sierra 10.13.6)

dir_array <- list.files(getwd(), "*_txt")

zip_files <- function(dir_name){
  zip_name <- paste0(dir_name, ".zip")
  zip(zipfile = zip_name, files = dir_name)
}

Map(zip_files, dir_array)

这应该使用指定名称将当前工作目录中的所有文件夹压缩。压缩文件夹也位于当前工作目录中。

答案 1 :(得分:1)

这是我用来达到预期效果的一种技巧,但仍然有效

setwd("c:/test")
dir.create("1202_txt") # creating folder inside working directory and some CSV files in there

array <- list.files( , "*_txt")

for (i in 1:length(array)){
  name <- paste0(array[i],".zip")

  Zip_Files <- list.files(path = paste0(getwd(),"/",  array[[i]]), pattern = ".csv$")
  # Moving Working Directory
  setwd(file.path("C:\\test\\",array[[i]]))
  #zipping files inside the directory
  zip::zip(zipfile = paste0(name[[i]]), files = Zip_Files)

  # Moving zip File from Inside folder to outside
  file.rename(name[i], paste0("C:\\test\\", name[i]))
  print(name[i])
}