0

我希望能够获取一个 github 存储库并将其内容解压缩到一个临时目录。我知道 devtools 中有 install_github 的功能,但我不想安装,这对所有 github 存储库更通用。

这是我尝试过的:

url <- "https://github.com/trinker/reports/zipball/master"
tmp <- tempfile( fileext = ".zip" )
download.file(url, tmp)
unzip(tmp, exdir = tempdir())  

这导致:

Warning message:
In unzip(tmp, exdir = tempdir()) : internal error in unz code

同样,我不想安装,但可以访问临时目录中的内部文件,退出时我将删除这些文件。

4

1 回答 1

5

使用downloader简化下载界面的包。这是实现目标的功能。

#' Download and unzip Github repo to current directory
#'
#' @params repo name of github repository
#' @params user github user name
download_repo <- function(repo, user){
  require(downloader)
  url <- sprintf("https://github.com/%s/%s/archive/master.zip", user, repo)
  tmp <- tempfile(fileext = ".zip")
  download(url, tmp)
  unzip(tmp)  
}

# download_repo('reports', 'trinker')
于 2013-03-01T20:37:03.747 回答