Renaming Files based on a Folder Name in Sequence
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Naomi Gaggi
el 2 de Oct. de 2018
Comentada: Naomi Gaggi
el 2 de Oct. de 2018
Hi, I am trying to do the following: I have folders participant 1, participant 2, etc. I want to name the files xxxx-folder name. Each file name is different but begins with 0001_. How can I do this in a loop (for multiple folders)?
2 comentarios
Akira Agata
el 2 de Oct. de 2018
> I have folders participant 1, participant 2, etc. I want to name the files xxxx-folder name.
You mean, for example, files in the 'participant 1' folder shall be renamed to '0001_participant 1.***', '0002_participant 1.***',...and so on? ('***' is extension of each file)
Respuesta aceptada
Akira Agata
el 2 de Oct. de 2018
Thank you for the clarification. Then, the program would be something like this.
s = dir('./participant*/*.*');
prevDir = '';
for kk = 1:numel(s)
if ~s(kk).isdir
oldName = s(kk).name;
[~,~,ext] = fileparts(oldName);
[~,currDir] = fileparts(s(kk).folder);
if ~strcmp(s(kk).folder,prevDir)
pref = 1;
prevDir = s(kk).folder;
else
pref = pref + 1;
end
newName = sprintf('%04d_%s%s',pref,currDir,ext);
movefile(fullfile(s(kk).folder,oldName),fullfile(s(kk).folder,newName));
end
end
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!