如何从另一个文件夹中替换文件名?

时间:2015-06-04 12:01:35

标签: r

我在dir1文件夹中有4个文件,在另一个dir2中有4个文件

我们可以将两个文件夹中的文件列为:

dir1<- list.files("/data/myfiles1", "*.img", full.names = TRUE)
dir1
file_data_20000125.img
file_data_20000126.img
file_data_20000127.img
file_data_20000128.img

dir2<- list.files("/data/myfiles2", "*.img", full.names = TRUE)
newfile_01.img
newfile_02.img
newfile_03.img
newfile_04.img

现在我需要的是用dir2中的文件名替换dir1中文件的名称。例如,newfile_01.img变为file_data_20000125.imgnewfile_02.img变为file_data_20000126.img, 等等。

1 个答案:

答案 0 :(得分:1)

我认为应该这样做可能会有更快的方式

basename用于从完整的fie路径获取基本名称,我使用gsub将onld文件名替换为新文件名

file.rename用于替换文件名

我的代码:

dir1<- list.files("/data/myfiles1", "*.img", full.names = TRUE)
dir2<- list.files("/data/myfiles2", "*.img", full.names = TRUE)
for (a in 1:length(dir1)){
    file.rename(from=dir2[a],to=gsub(basename(dir2[a]),basename(dir1[a]),dir2[a]))
}