Filter a directory and add in listbox only files with TIF/TIFF and containing a certain String

20 views (last 30 days)
Hello, I am trying to list all tif images ina folder into a listbox. I have it working but am trying to now only list those tif files that also contain a string in their name:
I initially choose the first file (using uigetfile so have the extension, path and filename)
%List all tif images into the list box.
[pathstr,name,ext] = fileparts(openpath);
filePattern = fullfile(pathstr, ['*',ext])
myFiles = dir(filePattern);
ListOfImageNames = {}; % Initialize
for Index = 1:length(myFiles)
% Get the base filename and extension.
baseFileName = myFiles(Index).name;
[folder, name, extension] = fileparts(baseFileName);
% Examine extensions for ones we want.
extension = upper(extension);
switch lower(extension)
case {'.tif','.tiff'}
% Keep only JPG, TIF, or tiff image files.
ListOfImageNames = [ListOfImageNames baseFileName];
% otherwise
% Now we have a list of validated filenames that we want.
% Send the list of validated filenames to the listbox. %ListOfImageNames;
So I thought if I have a string 'NameFilter', then all I need to do is change
filePattern = fullfile(pathstr, ['*',ext])
filePattern = fullfile(pathstr, [Namefilter,'*',ext])
But its not quite working. so to summarise, I only want tiff files which contain the string NameFilter

Accepted Answer

Walter Roberson
Walter Roberson on 7 Feb 2021
pathstr = fileparts(openpath);
myFiles = dir(pathstr);
filenames = {};
mask = endsWith(filenames, {'.tif', '.tiff'}, 'IgnoreCase', true);
ListOfImages = filenames(mask);

Sign in to comment.

More Answers (0)




Community Treasure Hunt

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

Start Hunting!

Translated by