在R中解压缩rar档案

ran*_*fer 5 zip r rar unpack rstudio

我需要解压缩zip和rar档案,这也必须是一个多平台解决方案。

在R中,您可以通过命令轻松解压缩zip

unzip(filename, exdir=‘’)
Run Code Online (Sandbox Code Playgroud)

但是我发现我不能那样解压缩rar文件。在OS XI上,只要我以这种方式配置了unarchiver,就可以简单地打开归档文件来解压缩它:

system(paste("open", path))
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索,可以安装7zip并从控制台解压缩,所以我尝试了Windows的安装程序包

require(installr)
install.7zip()
system(paste("7z x", path))
Run Code Online (Sandbox Code Playgroud)

但我得到警告,什么也没发生

running command '7z x 1.rar’ had status 127
Run Code Online (Sandbox Code Playgroud)

和Unix的终端命令

system('sudo apt-get install p7zip-rar')
system(paste("7z x ", path))
Run Code Online (Sandbox Code Playgroud)

但是它用sudo返回了错误

sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)

Mof*_*ofi 1

为了支持您自己的应用程序在任何平台上解压 RAR 存档,我建议将UnRAR 源代码集成到您的应用程序中。源代码是用C++编写的。因此,您需要使用 C++ 编译器为所有平台编译此源代码,并将生成的应用程序添加到 R 应用程序包中。

好吧, WinRAR 和 RAR 归档器插件页面上还有适用于 Windows(x86 和 x64)、Linux、Mac OS X 和其他操作系统的免费UnRAR ,适用于各种处理器。因此,您还可以为您想要支持的每个平台创建一个包含 R 应用程序和合适的UnRAR应用程序的包。