用R检查远程目录是否存在

时间:2015-05-14 11:43:40

标签: r

我想在给定指向该目录的URL的情况下检查远程服务器中是否存在给定目录。例如:

url <- "http://plasmodb.org/common/downloads/release-24"

如何在R中完成?我考虑使用url.show,它会下载并显示url(如果存在),但在不存在的目录的情况下会出错。但我不确定什么是最好的方法,最好不必在现有目录的情况下下载整个URL。

1 个答案:

答案 0 :(得分:5)

这将高度依赖于所讨论的服务器/资源,因为它与HTTP状态代码有关,而与R功能有关。如果远程服务器配置为正确响应目录索引请求,则可以使用HEAD中的httr进行此操作:

library(httr)

status <- HEAD("http://plasmodb.org/common/downloads/release-24/")
status$status_code
## [1] 200

status <- HEAD("http://plasmodb.org/common/downloads/release-100/")
status$status_code
## [1] 404

这是一个格式良好的状态代码列表http://httpstatus.es,这里有一个显着的RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html,您还应该仔细阅读其他部分。最后,这是一个讨论“目录索引”的维基百科链接http://en.wikipedia.org/wiki/Webserver_directory_index。这表明您可能会获得403 vs 200404,具体取决于配置(并且实际上不限于此,具体取决于Web服务器)。