How to delete all files with a certain extension?
157 次查看(过去 30 天)
显示 更早的评论
I have a directory with several .png files that I would like to delete in a script. I have the following script that I have modified from a script I found in the Matlab forums:
d = dir(file_path);
file_names = {d.name}';
count = 1;
for jj = 1:length(file_names)
pngFilePattern = char(fullfile(file_path,'*.png'));
pngFiles = dir(pngFilePattern);
count = 1;
for kk = 1:length(pngFiles)
pngBaseFileName = pngFiles(kk).name;
pngFullFileName = fullfile(pngFiles(kk).folder,pngBaseFileName);
delete(pngFullFileName)
end
count = count + 1;
end
I've simplied this script by just using "file_path" in this forum post instead of the full path of the file. This code seems to work (all my .png files get deleted), but I think I may have a problem in this script because I can't get "count" to equal the number of files in the directory that I want to delete. The final value of "count" is several multiples of the number of .png files that need to be deleted.
Can someone please tell me how I can modify (and hopefully simplify) this script, so I can make sure that only the .png files that to be deleted are deleted?
Thank you!
0 个评论
采纳的回答
dpb
2022-10-11
编辑:dpb
2022-10-12
Because your count variable is being incremented in the outer loop which is running over a dir() list of all files (including subdirectory names and the two "dot" directory entries), not just over the *.png files.
If you're only worried about the single directory, you don't need (and don't want) the outer loop; just use
pngFiles=dir(fullfile(file_path,'*.png');
count = numel(pngFiles);
for i=1:count
delete(fullfile(pngFiles(i).folder,pngFiles(i).name);
end
But, you don't need to iterate over all files, simply
delete *.png
will do the trick in the current directory or
delete(fullfile(fullfile(file_path,'*.png'))
wipes 'em all out in the subject directory.
3 个评论
Stephen23
2022-10-13
"Do you see what I'm messing up?"
You omitted '*.png' from the FULLFILE command.
(it is not an input to the DELETE command as you attempted)
更多回答(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!