解压缩并重命名保留原始文件扩展名的文件

时间:2016-05-09 21:22:41

标签: r unzip

我想解压缩文件夹中的文件并使用与其.zip原始文件相同的名称重命名它们,但保留各个文件的原始扩展名。关于如何做到这一点的任何想法?

可重复的例子:

# Download zip files
  ftppath1 <- "ftp://geoftp.ibge.gov.br/malhas_digitais/censo_2010/setores_censitarios/se/se_setores_censitarios.zip"
  ftppath2 <- "ftp://geoftp.ibge.gov.br/malhas_digitais/censo_2010/setores_censitarios/al/al_setores_censitarios.zip"
  download.file(ftppath1, "SE.zip", mode="wb") 
  download.file(ftppath2, "AL.zip", mode="wb") 

我想到的是像这样天真的东西:

# unzip and rename files
  unzip("SE.zip", file_name= paste0("SE",.originalextension))
  unzip("AL.zip", file_name= paste0("AL",.originalextension))

最后,这些是我在文件夹中的文件:

SE.zip
AL.zip

AL.shx
AL.shp
AL.prj
AL.dbf

SE.shx
SE.shp
SE.prj
SE.dbf

1 个答案:

答案 0 :(得分:2)

for (stem in c('SE','AL')) {
    zf <- paste0(stem,'.zip'); ## derive zip file name
    unzip(zf); ## extract all compressed files
    files <- unzip(zf,list=T)$Name; ## get their orig names
    for (file in files) file.rename(file,paste0(stem,'.',sub('.*\\.','',file))); ## rename
};
system('ls;');
## AL.dbf  AL.prj  AL.shp  AL.shx  AL.zip  SE.dbf  SE.prj  SE.shp  SE.shx  SE.zip