如何抑制RCurl的curlPerform的输出?

时间:2018-06-15 19:44:16

标签: r curl rstudio rcurl sink

我已经在这个R库上工作了一段时间了,而我最近的努力是尝试创建一个从FTP服务器删除东西的功能。但是,我现在已经发现自己被这个问题扼杀了一段时间。

这是我删除文件的代码:

  ftpDelete <- function(credentials, address, directory, files) {
  status <- integer(length(files))
  names(status) <- files
  pb <- txtProgressBar(min = 0, max = length(files), style = 3)
  cd <- paste("CWD", directory)
  for (n in 1:length(files)) {
    sink("nul")
    status[n] <- tryCatch({
      dc <- paste("DELE", files[n])
      k <- curlPerform(url = getFTPURL(address), quote = c(cd, dc), userpwd = credentials, returntransfer = 1)
      0
    }, error = function(w) {
      return(1)
    })
    Sys.sleep(0.5)
    sink()
    setTxtProgressBar(pb, n)
  }
  close(pb)
  return(status)
}

每次运行此代码时,似乎都会打印出FTP文件夹的完整目录,这对于大量文件应用此功能尤其令人恼火。你们对如何隐藏输出有什么建议/智慧吗?作为参考,我在Windows 10上使用RStudio,甚至在整个函数调用周围使用sink(),我仍然打印整个目录。出。

1 个答案:

答案 0 :(得分:0)

尝试sink(type="message"),或者更好,suppressMessages()。您可能还想将curl包作为RCurl的替代方案。