2017-03-14 47 views
0

我有一个类似的文件结构:将文件移动到父文件夹中的R

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循环应该完成工作 - 我只是不确定如何将文件指向父目录。

+0

也许这个问题的一些变化http://stackoverflow.com/questions/24319168/how-to-move-backward-parent-folder –

回答

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]]) 
} 
+0

不错。这是一个不同于我心目中的解决方案,但它完美地工作。谢谢! –

+0

太棒了!玩得开心。 –

0

尝试使用批处理文件:

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

 
xcopy %DIRSRC% %DIRDST%

+0

ŧ o对这个例子进行补充,你可以使用FOR LOOP与文件夹/数字进行交互......详见[link](http://www.robvanderwoude.com/for.php) –

相关问题