Renaming Files based on a Folder Name in Sequence

9 vues (au cours des 30 derniers jours)
Naomi Gaggi
Naomi Gaggi le 2 Oct 2018
Commenté : Naomi Gaggi le 2 Oct 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 commentaires
Akira Agata
Akira Agata le 2 Oct 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 le 2 Oct 2018
Modifié(e) : Naomi Gaggi le 2 Oct 2018
Yes, thanks - or it would even be helpful to just add participant 1 at the end of each file name

Connectez-vous pour commenter.

Réponse acceptée

Akira Agata
Akira Agata le 2 Oct 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
  1 commentaire
Naomi Gaggi
Naomi Gaggi le 2 Oct 2018
Thanks, so much this was so helpful!!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by