[GUI] How to create a directory of files of a specific folder using Listbox
1 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
回答(1 个)
Image Analyst
2012-12-19
编辑:Image Analyst
2013-10-28
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 个评论
Jan
2012-12-19
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
2012-12-19
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.
另请参阅
类别
在 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!