Rename files: keep only first 5 characters
2 ビュー (過去 30 日間)
古いコメントを表示
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!
0 件のコメント
採用された回答
Voss
2022 年 3 月 14 日
編集済み: Voss
2022 年 3 月 14 日
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 件のコメント
その他の回答 (1 件)
Jan
2022 年 3 月 14 日
編集済み: Jan
2022 年 3 月 14 日
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 件のコメント
Jan
2022 年 3 月 14 日
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.
参考
カテゴリ
Help Center および File Exchange で Startup and Shutdown についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!