Rename files: keep only first 5 characters

I have a folder with 250 pictures which I want to rename. The original names are "00XXX.[random numbers]" (with XXX from 001 to 250) and I would like them to simply be named "00XXX", deleting the remaining characters.
Is there an easy way of doing this in a for loop?
Thanks in advance!

 Accepted Answer

Voss
Voss on 14 Mar 2022
Edited: Voss on 14 Mar 2022
You can use movefile() to rename files. Try something like this on a copy of your folder:
pn = 'path\to\your\directory\';
f = dir(fullfile(pn,'*.png')); % get info about all .png files in folder pn, for instance
for ii = 1:numel(f)
[~,name,ext] = fileparts(f(ii).name);
movefile(fullfile(pn,f(ii).name),fullfile(pn,[name(1:5) ext]));
end

2 Comments

This worked perfectly, thank you for the help!
You're welcome! Glad it worked

Sign in to comment.

More Answers (1)

Jan
Jan on 14 Mar 2022
Edited: Jan on 14 Mar 2022
Folder = 'C:\Your\Folder';
List = dir(fullfile(Folder, '*.*'));
List([List.isdir]) = []; % [EDITED] remove folders
for k = 1:numel(List)
Name = List(k).name;
Source = fullfile(Folder, Name);
Dest = fullfile(Folder, strtok(Name, '.'));
[Succ, Msg] = movefile(Source, Dest, 'f');
if Succ == 0
error(Msg);
end
end

2 Comments

Thank you for your answer. Unfortunetely, it doesn't seem to work. I get the following error: Cannot copy or move a file or directory onto itself.
Then some of the files in this folder do not match the naming scheme "00XXX.[random numbers]". Maybe "." and ".." are the problem. I've updated the code, but if the other answer is working, stay at it.

Sign in to comment.

Categories

Products

Release

R2021a

Asked:

on 14 Mar 2022

Edited:

Jan
on 14 Mar 2022

Community Treasure Hunt

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

Start Hunting!