Delete files with specific names
조회 수: 68 (최근 30일)
이전 댓글 표시
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
Image Analyst
2016년 5월 31일
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().
채택된 답변
Thorsten
2016년 5월 31일
편집: Thorsten
2016년 5월 31일
You can get the filenames using
d = dir;
filenames = {d.name};
Loop through the filenames
for i = 1:numel(filenames)
fn = filenames{i};
[num, cnt] = sscanf(fn(find(fn == '-', 1, 'last')+1:end-4), '%d');
if cnt == 1 && num > 276
disp(fn)
end
end
This just displays the files to be deleted. If everything is alright, replace
disp(fn)
with
delete fn
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 File Operations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!