将目录及其部分内容复制到新目录R

时间:2018-07-13 18:13:13

标签: r directory

我有很多包含工程图的目录(多达几百个)。目录名称以图纸编号和描述开头,例如“ 13160001678蒸发冷却器”。目录名称中的数字是文件夹中的主要装配图(其他文件是装配中使用的零件图)。我要复制文件夹名称,并且仅复制与文件夹名称中数字相对应的文件。

这是我到目前为止尝试过的:

current_directory <- "T:\\Gaveglia\\original_drawings"

new_location <- "T:\\Gaveglia\\copied_drawings"

new_names <- list.dirs(current_directory, recursive = F, full.names = F)

sapply(new_names, function(z) dir.create(file.path(new_location, z)))

dwg_names <- str_extract(string = new_names, pattern = '[[:digit:]]+')

long_dir_names <- list.dirs(current_directory, recursive = F, full.names = T)

new_subdirectories <- list.dirs(new_location, full.names = T, recursive = F)

lapply(1:length(dwg_names), function(z){
  kk <- dir(path = long_dir_names[z], 
            pattern = paste(dwg_names[z],".*PDF", "|", dwg_names[z], ".*pdf",sep = ""),
            full.names = T)
  sapply(kk, function(q){
    file.copy(from = q, to = new_subdirectories[z] )
  })
})

这似乎效果很好。但是,在某些情况下,也需要复制几个子文件夹。使用与上述相同的示例,“ 13160001678蒸发式冷却器”具有名为“ 13160001678.SLDASM.pdf”的图形,但还有13个遵循相同命名约定并且需要复制的文件夹(请参见下图)。

enter image description here

我可以通过以下任一方式解决此问题:

  1. 重新运行“ 13160001678蒸发式冷却器”文件夹而不是current_directory的代码。
  2. 修改我的代码以深入到一个子目录级别

前者只是比较耗时。我不愿意实施后者,因为我认为这可能会使整个过程变慢。还有其他方法可以解决吗?也许一个包裹?

0 个答案:

没有答案