使用循环在R中移动多个文件

时间:2018-11-13 15:38:15

标签: r

我知道有些问题与我的非常相似,但是我有不同且奇怪的问题。

我正在研究一个脚本,该脚本会将文件从一个位置存档到另一个位置。 问题是,当我在一个循环中对多个文件使用file.rename()时,或者如果我尝试在1行中使用旧路径矢量和新路径矢量,R不会移动文件。 例如

for (i in 1:length(old_files_all)) {
  try(file.rename(from = file.path(old_files_all[i]), to = file.path(new_paths[i])))
  #or without try/file.path inside of method ^
}

这样的循环不会移动文件,但是当我为循环的每个位置手动运行代码时,就像这样:

try(file.rename(from = file.path(old_files_all[1]), to = file.path(new_paths[1])))

有效。...

你们能帮助我,如何解决这个“问题”。 预先感谢。

1 个答案:

答案 0 :(得分:0)

您可以直接将vector.rename与向量一起使用而无需循环。

#create some example files
file.create(paste0("test", formatC(1:10, width = 2, flag = "0"), ".txt"))
#create vectors with old and new file names
files_old <- list.files(pattern = "^test[0-9]{2}\\.txt", getwd())
files_new <- paste0(getwd(), "//Delete//", files_old)

#move files
file.rename(from = files_old, to = files_new)