如何从R中的数据表中的文件列进行文件复制

时间:2018-04-11 14:21:53

标签: r file datatable copy

我正在尝试使用我需要的所有文件创建一个新文件夹。我有一个名为newlist的数据表,其中包含一个名为fullpath的列,其中包含每个文件的文件路径。

我已尝试过以下代码,但错误消息显示为"'from' path too long",因此我认为它不会将这些值识别为单独的文件路径。

file.copy(from=newlist[,"fullpath"], to=destination, overwrite=TRUE, recursive=TRUE)

我想我需要首先使用list.files()函数指定要复制的文件,但我不确定如何使用数据表中的一列文件来执行此操作。

1 个答案:

答案 0 :(得分:0)

试试这个:

lapply(newlist[,"fullpath"], function(x) file.copy(from=x, to=destination, overwrite=TRUE, recursive=TRUE))

编辑:

如果您的路径不包含扩展名,则可以改为使用此代码:

lapply(newlist[,"fullpath"], function(x) {
  # Find the file in the given directory with the basename and add a wildcard extension
  f <- file.path(dirname(x), list.files(dirname(x), paste0(basename(x), ".*")))
  file.copy(from=f, to=destination, overwrite=TRUE, recursive=TRUE)
})