Renaming Files based on a Folder Name in Sequence

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
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)
Naomi Gaggi
Naomi Gaggi el 2 de Oct. de 2018
Editada: Naomi Gaggi el 2 de Oct. de 2018
Yes, thanks - or it would even be helpful to just add participant 1 at the end of each file name

Iniciar sesión para comentar.

 Respuesta aceptada

Akira Agata
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)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Preguntada:

el 2 de Oct. de 2018

Comentada:

el 2 de Oct. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by