How do I rename multiple files located in subfolders within a main folder?

조회 수: 5 (최근 30일)
Deep
Deep 2018년 10월 22일
댓글: Deep 2018년 10월 23일
The files have to be renamed in a certain order. For eg. if the file name is Fname, the renaming should be P(foldername)_Fname. Below is the code created using help from comments on other answers. However,I am getting an error ' All inputs must be strings, character vectors, or cell arrays of character vectors.' I am not sure where the problem lies. I would appreciate any help with this.
D = dir;
D = D(~ismember({D.name}, {'.', '..'}));
for k = 1:length(D)
currD = D(k).name;
fList = dir(currD);
fList = fList(~ismember({fList.name}, {'.', '..'}));
for i = 1:length(fList)
oldFileName = fList(i).name;
str1 = {'P'};
str2 = D(k).name;
str3 = {'_'};
str4 = oldFileName;
newFileName = (strcat(str1, str2, str3, str4));
movefile (fullfile(D,oldFileName, newFileName));
end
end

채택된 답변

Akira Agata
Akira Agata 2018년 10월 23일
How about the following?
D = struct2table(dir('./**/*'));
D = D(~D.isdir,:);
for kk = 1:height(D)
[~,folderName] = fileparts(D.folder{kk});
newFileName = ['P',folderName,'_',D.name{kk}];
movefile(fullfile(D.folder{kk},D.name{kk}),fullfile(D.folder{kk},newFileName));
end

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 File Operations에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by