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

Unzip and rename files keeping original file extension

我想将文件解压缩到一个文件夹中,并使用与原始 .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
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