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

11 visualizaciones (últimos 30 días)
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
end
end
% Now we have a list of validated filenames that we want.
% Send the list of validated filenames to the listbox. %ListOfImageNames;
app.ListBox.Items=ListOfImageNames;
So I thought if I have a string 'NameFilter', then all I need to do is change
filePattern = fullfile(pathstr, ['*',ext])
To
filePattern = fullfile(pathstr, [Namefilter,'*',ext])
But its not quite working. so to summarise, I only want tiff files which contain the string NameFilter
Thanks
Jason

Respuesta aceptada

Walter Roberson
Walter Roberson el 7 de Feb. de 2021
pathstr = fileparts(openpath);
myFiles = dir(pathstr);
filenames = {myFiles.name};
mask = endsWith(filenames, {'.tif', '.tiff'}, 'IgnoreCase', true);
ListOfImages = filenames(mask);
  2 comentarios
Jason
Jason el 7 de Feb. de 2021
Editada: Jason el 7 de Feb. de 2021
So simple! Thankyou
Ajh, the only thing is that the string I want the files to contain (Namefilter) is always at the front of the string
Walter Roberson
Walter Roberson el 7 de Feb. de 2021
mask = mask & beginsWith(filenames, Namefilter);
With or without the 'IgnoreCase' option as appropriate.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by