How do I rename multiple files located in subfolders within a main folder?
3 views (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
Akira Agata
on 23 Oct 2018
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
More Answers (0)
See Also
Categories
Find more on Search Path in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!