Delete files with specific names
Ältere Kommentare anzeigen
Hello
I have a directory with files from the same type with names like:
2016_03_24_09 -0002-0001-00058.dcm
2016_03_24_09 -0002-0001-00059.dcm
2016_03_24_09 -0002-0001-00060.dcm
etc.
Based on the last 5 figures (e.g.,*00060.dcm),
I need to delete every file that ends with a number greater than 276.
Is there a way to do it in a loop?
Thanks,
Tali
4 Kommentare
John
am 31 Mai 2016
files = ls('*.dcm'); % list of files with .dcm extension
for n = 1:N
ind1 = strfind(files(n,:), '-'); % indicies of the '-' char
ind2 = strfind(files(n,:), '.'); % index of '.'
str = files(n,ind1(end)+1:ind2-1);% extract the numeric string
if str2num(str) > 276
delete(files(n,:)); % delete if greater than 276
end
end
Tali Leibovich
am 31 Mai 2016
Image Analyst
am 31 Mai 2016
You need
for n = 1: size(files, 1)
and, since using ls gives you a character array instead of a cell array, you'll need
delete(strtrim(files(n,:)));
to trim off the extra whitespace. If you use dir() instead of ls(), you don't need to use strtrim().
Tali Leibovich
am 31 Mai 2016
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu File Operations finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!