R下载文件错误,无法打开URL。

3
temp <- tempfile()
download.file("file://connect/me/test.gz",temp)

这个URL存在,因为我可以在浏览器中打开它,但是当我运行那段代码时出现了错误:

  Error in download.file("file://connect/me/test.gz",  : 
    cannot open URL "file://connect/me/test.gz", reason 'No such file or directory'

你有什么想法,如何下载文件并解压缩?

更新

我在fil://这里找到一些信息 https://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html:

"关于file:// URLs的说明。最一般的形式(来自RFC1738)是file://host/path/to/file,但R只接受一个空主机字段引用本地机器的形式。"

"在这种形式中,路径相对于文件系统的根,而不是Windows的概念。标准形式在Windows上是file:///d:/R/repos:为了与早期版本的R和Unix版本兼容,任何其他形式都被解释为file://加上path_to_file。此外,在路径内接受反斜杠,即使RFC1738不允许也可以。"

这是什么意思?

谢谢


也许添加额外的/?像这样:download.file("file://connect//me//test.gz",temp) - David Arenburg
@David - 我试过了,得到了同样的错误。您认为这是因为地址以“file”开头而不是“www”吗? - user3022875
@David,你知道这个更新是什么意思吗? - user3022875
似乎意味着您需要从URL中删除主机。 - David Arenburg
哈,是啊,那意味着 URL 应该长什么样子呢?我想这就是下面那个人说要用///三个斜杠表示空主机的原因,但似乎并没有起作用。 - user3022875
地址不以'file'开头,'file'是方案,替换了'http'(或许多其他选项)。R只允许您使用本地文件的'file'方案。这就是更新所说的。您需要使用完整的Windows路径,从字母开始。 - Elin
2个回答

2

我明白了。我必须将驱动器“B”映射到该文件夹,然后

temp <- tempfile()
download.file("file:///B:/me/test.gz",temp,method="internal")

0

我认为你需要在 file: 后面加上三个斜杠,其余部分只需要一个斜杠。我在 Windows 7 上尝试过,它可以正常工作。

    temp <- tempfile()
    download.file("file:///C:/Users/Philip/Desktop/Coursera/data/cameras.csv",temp)

我的看法,@user3022875:当你看到一个非文件URL时,你会看到类似于http://some.host.com/path/to/filename的东西。R不支持带有远程主机的file: URI,因此主机字段需要为空。因此,一个技术上合法的URI file://remote.host.com/path/to/file 需要删除远程主机名(但不是周围的斜杠),留下file:///path/to/file。请注意三个斜杠。 - r2evans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接