[GUI] How to create a directory of files of a specific folder using Listbox

1 visualización (últimos 30 días)
Shane
Shane el 19 de Dic. de 2012
Editada: Image Analyst el 28 de Oct. de 2013
How to create a directory of files of a specific folder using Listbox.
I basically want to fill a listbox with files from folder.
Thanks, Shane

Respuestas (1)

Image Analyst
Image Analyst el 19 de Dic. de 2012
Editada: Image Analyst el 28 de Oct. de 2013
Use the dir() command. For example see the LoadImageList() function below:
%=====================================================================
% --- Load up the listbox with image files in folder handles.handles.ImageFolder
function handles=LoadImageList(handles)
ListOfImageNames = {};
folder = handles.ImageFolder;
if length(folder) > 0
if exist(folder,'dir') == false
msgboxw(['Folder ' folder ' does not exist.']);
return;
end
% fprintf(1, 'Getting list of images in folder: %s\n', folder);
else
fprintf('No folder specified as input for function LoadImageList.\n');
WarnUser('No folder specified as input for function LoadImageList.');
return;
end
% If it gets to here, the folder is good.
ImageFiles = dir([folder '\*.*']);
for Index = 1:length(ImageFiles)
baseFileName = ImageFiles(Index).name;
[folder2, name, extension] = fileparts(baseFileName);
extension = upper(extension);
switch lower(extension)
case {'.png', '.bmp', '.jpg', '.tif'}
% Allow only PNG, TIF, JPG, or BMP images
ListOfImageNames = [ListOfImageNames baseFileName];
otherwise
end
end
set(handles.lstImageList,'string',ListOfImageNames);
% Need to deselect everything otherwise if new folder has fewer files than the last folder used, the listbox won't show up.
set(handles.lstImageList,'value', []);
return; % from LoadImageList()
  2 comentarios
Jan
Jan el 19 de Dic. de 2012
exist(folder,'dir') replies 7 if folder is existing and 0 otherwise. Comparing the replied value with false works, but might be misleading.
Image Analyst
Image Analyst el 19 de Dic. de 2012
Since exist() returns an integer (or maybe a double that is an integer) I should be comparing it to an integer. Maybe long ago it used to return a boolean - I don't remember - or maybe I just did that because it seemed more intuitive. I should probably change it (though I've got that code in dozens of files). Thanks for the tip.

Iniciar sesión para comentar.

Categorías

Más información sobre File Operations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by