R使用Rcurl从FTP下载多个文件

eet 发布于 4 天前 download 最后更新 4 天前 1 浏览

我是新用户。 我试图从ftp服务器(我从用户和密码获得)下载7.000个文件(.nc格式)。在网站上,每个文件都是一个可供下载的链接。我想下载所有文件(.nc)。 我感谢任何能够帮助我如何在R中运行这些作业的人。仅仅是我尝试使用Rcurl和循环的一个示例,并告知我:无法下载所有文件。

library(RCurl)
url<- "ftp://ftp.my.link.fr/1234/"
userpwd <- userpwd="user:password"
destination <- "/Users/ME/Documents"
filenames <- getURL(url, userpwd="user:password", 
ftp.use.epsv = FALSE, dirlistonly = TRUE)
for(i in seq_along(url)){
  download.file(url[i], destination[i], mode="wb")
}
我怎样才能做到这一点?
已邀请:

ynulla

赞同来自:

您将看到的第一件事是您的目录中的文件,即对象文件名,将被列为一个长字符串。要获取所有文件名的对象作为字符向量,您可以尝试:

    files <- unlist(strsplit(filenames, '\n'))
从这里开始,只需循环遍历目录中的所有文件即可。我建议你使用curl包而不是Rcurl来下载文件,因为它更容易为每个下载请求提供auth信息。
    library(curl)
    h <- new_handle()
    handle_setopt(h, userpwd = "user:pwd")
接着
    lapply(files, function(filename){
    curl_download(paste(url, filename, sep = ""), destfile = filename, handle = h)
    })