【问题标题】:Creating a folder and deleting on a FTP server with RCurl使用 RCurl 在 FTP 服务器上创建文件夹并删除
【发布时间】:2013-08-16 15:06:11
【问题描述】:

使用 R 的 RCurl 包的 ftpUpload() 功能,我可以在 FTP 服务器上上传文件。但是如何从 R 在 FTP 服务器上创建一个新文件夹?以及如何删除文件或文件夹?

【问题讨论】:

  • 您可能需要在一个可重复的示例中展示您已经尝试过的内容,以便人们有动力尝试并进一步帮助您。
  • @SimonO101 我已经搜索了几年,但我没有找到任何可以尝试的东西。
  • 尝试先弄清楚如何使用 curl,然后弄清楚如何使用 Rcurl。谷歌搜索“删除文件 ftp curl”会得到一些有用的结果。
  • @hadley 谢谢。但是 RCurl 文档对我来说就像中文。我认为找到如何使用系统命令(我可以轻松地从 R 运行)将花费我更少的时间。
  • @hadley 的评论非常到位。 RCurl 中的所有内容最终都指向curlPerform,它基本上只是 curl 系统调用的直接包装器。

标签: r ftp rcurl


【解决方案1】:

它对我有用,但正确的引用命令是 DELE,而不是 DELETE! 这里是命令列表http://www.nsftools.com/tips/RawFTP.htm

那就试试吧:

curlPerform(url="ftp://xxx.xxx.xxx.xxx/", quote="DELE file.txt", userpwd = "user:pass")

【讨论】:

    【解决方案2】:

    要创建新文件夹,您只需在上传文件时包含完整路径,并启用 ftp.create.missing.dirs 选项:

    .opts <- list(ftp.create.missing.dirs=TRUE)
    user <- "yourlogin"
    pwd <- "yourpassword"
    
    RCurl::ftpUpload(what = "filename.txt", to = "ftp://yourserver.com:21/newFolder/filename.txt", userpwd = paste(user, pwd, sep = ":"), .opts = opts)
    

    【讨论】:

      【解决方案3】:

      尝试使用 curlPerform 发送报价命令。尝试这样的删除。您可能需要查找实际的 ftp 命令来创建目录和删除文件。

      curlPerform(url="ftp://xxx.xxx.xxx.xxx/", quote="DELETE file.txt", userpwd = "user:pass")
      

      【讨论】:

        【解决方案4】:

        要创建文件夹,请使用 curlPerform("ftphost",quote="MKD foldername",userpwd="user:pass")。要删除文件,请使用 curlPerform("ftphost",quote="DELETE filename",userpwd="user:pass")。 根据 FTP 服务器,您可能必须使用 mkdir 而不是 MKD 和 del 或 DELE 而不是 DELETE。这取决于服务器。

        【讨论】: