在R中解压缩受密码保护的zip文件

问题描述 投票:4回答:2

密码不能在unziputils)函数中指定。我所知道的另一个功能是getZipHmisc),仅适用于包含一个压缩文件的zip文件。

我想做这样的事情来解压缩Windows 8中foo.zip中的所有文件:

unzip("foo.zip", password = "mypass")
r windows unzip password-encryption
2个回答
2
投票

我发现这个问题非常有用,但看到没有发布正式答案,所以这里是:

  1. 首先我安装了7z。
  2. 然后我将“C:\ Program Files \ 7-Zip \”添加到我的环境路径中。
  3. 我测试了7z命令是从命令行识别的。
  4. 我打开R并用适当的system("7z x secure.7z -pPASSWORD")输入PASSWORD

我有多个压缩文件,我宁愿不在源代码中显示密码或存储在任何文本文件中,所以我编写了以下脚本:

file_list <- list.files(path = ".", pattern = ".7z", all.files = T)
pw = readline(prompt = "Enter the password: ")
for (file in file_list) {
  sys_command = paste0("7z ", "x ", file, " -p", pw)
  system(sys_command)
}

在sourced时会提示我输入密码,zip文件将在循环中解压缩。


0
投票

密码< - “您的密码”

system(command = paste0(“unzip -o -P”,password,“”,“yourfile.zip”),wait = TRUE)

© www.soinside.com 2019 - 2024. All rights reserved.