我们压缩文件夹里的目录结构如下:

  1. 123.zip
  2. └── 附件
  3. └── 管理.docx

1. 读取ZIP文件

使用 R 里面的 zip 来读取压缩文件:

  1. > setwd("f:")
  2. > zip::zip_list("./123.zip")
  3. filename compressed_size uncompressed_size timestamp
  4. 1 <U+00B8><U+00BD><U+00BC><fe>/<U+00B9><dc><c0><ed>.docx 11884 14750 2021-07-27 11:25:58
  5. permissions crc32 offset
  6. 1 600 f9e9b0eb 0

显然这个 filename 字段是乱码的,不符合我们的要求,可采用以下方式读取:

  1. > iconv(zip::zip_list("./123.zip"), to = "UTF-8")
  2. [1] "附件/管理.docx" "11884" "14750" "1627385158" "384" "-102125333"
  3. [7] "0"

2. 解压ZIP文件

再来看一下解压 ZIP 文件:

  1. > zip::unzip(zipfile = "./123.zip", junkpaths = TRUE, exdir = "./tmp")

查看下 tmp 文件夹的文件,显然是乱码的,采用以下方法进行解决:

  1. unzip("./123.zip")

这里不可以用 zip::unzip 来进行解压,会出现乱码。