将文件移动到R中的父文件夹

时间:2017-03-14 16:59:47

标签: r file-manipulation

我的文件结构类似于:

  

d:/ BU1 / RP1 / _archive /

     

d:/ BU1 / RP2 / _archive /

     

d:/ BU1 / RP3 / _archive /

     

d:/ BU2 / RP1 / _archive /

     

d:/ BU2 / RP2 / _archive /

     

d:/ BU3 / RP1 / _archive /

     

d:/ BU4 / RP1 / _archive /

     

d:/ BU4 / RP2 / _archive /

并希望将'_archive'文件夹中的文件移动到各自的父文件夹中(例如从D:/ bu1 / rp1 / _archive /到D:/ bu1 / rp1)。

我将每个存档文件夹路径存储为列表,并认为相对简单的for循环应该完成工作 - 我只是不确定如何将文件指向父目录。

2 个答案:

答案 0 :(得分:0)

尝试使用批处理文件:

SET DIRNUMBER=1
SET DIRSRC=C:\bu%DIRNUMER%\rp%DIRNUMER%\_archive\
SET DIRDST=C:\bu%DIRNUMER%\rp%DIRNUMER%\

xcopy %DIRSRC% %DIRDST%

答案 1 :(得分:0)

抱歉,这未经过测试(因为我不知道您要复制的文件数量是多少或有多少),但这样的内容可能会有效

#recreating your directory structure
old_dirs <- list('D:/bu1/rp1/_archive/',
  'D:/bu1/rp2/_archive/',
  'D:/bu1/rp3/_archive/',
  'D:/bu2/rp1/_archive/',
  'D:/bu2/rp2/_archive/',
  'D:/bu3/rp1/_archive/',
  'D:/bu4/rp1/_archive/',
  'D:/bu4/rp2/_archive/')

#splitting filepaths at underscore, which is not really generalized
#but works for your example
new_dirs <- strsplit(unlist(old_dirs), '_')
new_dirs <- lapply(new_dirs, '[[', 1)

#this loop probably needs some work
for(i in old_dirs) {
  all_files <- list.files(old_dirs[[i]])
  file.copy(old_dirs[[i]], new_dirs[[i]])
}