我一直在为 FTP 开发这个 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(),我仍然可以打印整个目录。出去。