我有一个任务,要求我使用CSV电子表格中存储文件名的特定列,例如:
文件名 | ca - 001 |
---|
wv - 001 |
ma - 001 |
使用提供的代码,您想要匹配的模式的选择将在csvfile$File.Name
中。
我假设源目录可能非常大。而不是执行缓慢的正则表达式来匹配子字符串(虽然我们知道确切的文件名),和/或获得完整的文件列表(这也很慢),我将只在复制它们之前查找是否确实需要的文件名存在:
source <- "C:/Users/53038/MovePDF/Test_From"
target <- "C:/Users/53038/MovePDF/Test_To"
csvfile <- read.csv('C:/Users/53038/MovePDF/Master.csv')
# add .pdf suffix
toCopy <- paste0(csvfile$File.Name,'.pdf')
# add source directory path
toCopy <- file.path(source, toCopy)
# optional: extract only the existing files from toCopy. You can skip this step if you're sure they exist and/or you don't mind receiving errors
toCopy <- toCopy[file.exists(toCopy)]
# make it so
file.copy(toCopy, target, overwrite = T)
我最好始终在文件名中保留.pdf
扩展名,在源CSV中也是如此。如果扩展名是。pdf、。pdf等,那么在区分大小写的文件系统(几乎所有的Linux安装,很少有macOS或Windows)上会有问题。