首页 > 解决方案 > 将文件从一个文件夹复制到另一个文件夹时,如何在 R 中设置多个文件模式?

问题描述

在工作中,我有一些文件在接收和接受时被添加到文件夹路径中。它们是我需要从 wdf 转换为 csv 的 .wdf 文件。然后,我想将这些文件连接到一个可以按列名过滤的文件中。因此,我试图根据扩展名和日期从众多文件夹中提取文件的子集,将我想要的文件复制到另一个文件夹中,然后将它们连接起来。

我要提取的文件名采用以下形式:

"//xyz/ExternalUsers/em/em18thjudic/uploaded_files/ACCEPTED_201907101310_UIXD#FGE18thJULDWC2Q2019.wdf"

我希望该路径中的所有文件都以 .wdf 结尾并且介于某个日期(当前为 7 月份)之间。我也希望能够在我运行脚本时让它只提取新文件,但我还没有弄清楚。我可以让它使用日期或文件类型提取文件,但不能同时使用两者。

我尝试使用带有 file.mtime 的 tapply 来按日期提取。这不起作用,所以我尝试通过名称中包含某些上传日期的文件来提取。

files <- list.files(
  path="//sptw02/ExternalUsers/em", 
  pattern = "\\.wdf$|._201907.", 
  full.names = TRUE, 
  recursive = TRUE)

dirs <- dirname(files)
lastfiles <- tapply(files, dirs, function(v) v[which.max(file.mtime(v))])

我试过的:

1)pattern = "\\.wdf$|._201907.",

2)pattern = c("(\\.wdf$,._201907.)"),

3)pattern = "\\.wdf"|"._201707.",

我只能让它提取名称中包含该日期的文件或 .wdf 文件扩展名

我希望只抓取包含我正在过滤的模式的文件并将其复制到另一个文件夹中。相反,它仅复制具有 .wdf 或 _201907 的所有文件。我不能同时拉动。它在复制时会拉入所有内容。

标签: r

解决方案


推荐阅读