我想在给定指向该目录的URL的情况下检查远程服务器中是否存在给定目录。例如:
url <- "http://plasmodb.org/common/downloads/release-24"
如何在R中完成?我考虑使用url.show
,它会下载并显示url(如果存在),但在不存在的目录的情况下会出错。但我不确定什么是最好的方法,最好不必在现有目录的情况下下载整个URL。
答案 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 200
或404
,具体取决于配置(并且实际上不限于此,具体取决于Web服务器)。