How to populate Listbox in GUI with all files from a folder.
Show older comments
Hi Everybody, What I want is quite simple but I'm struggling tremendously trying to do it. I have a GUI with a 'Browse' button that I want the user to be able to click, choose a folder and then all the files in that folder are listed in the listbox. I seem to be able to get as far as browsing files by simply using the uigetdir syntax but when I select a folder it wont load to the listbox. Any ideas?
Cheers, Ellis
Answers (1)
Orion
on 2 Mar 2016
Hi Ellis,
let say you have one pushbutton and one listbox (tagged pushbutton1 and listbox1 with GUIDE).
in the callback of your pushbutton, you should do something like :
function pushbutton1_Callback(hObject, eventdata, handles)
% get the folder
folder_name = uigetdir;
% get what is inside the folder
Infolder = dir(folder_name);
% Initialize the cell of string that will be update in the list box
MyListOfFiles = [];
% Loop on every element in the folder and update the list
for i = 1:length(Infolder)
if Infolder(i).isdir==0
MyListOfFiles{end+1,1} = Infolder(i).name;
end
end
% update the listbox with the result
set(handles.listbox1,'String',MyListOfFiles)
That should do it
4 Comments
Or without a loop:
Infolder = dir(folder_name);
MyListOfFiles = {Infolder(~[Infolder.isdir]).name}
Orion
on 2 Mar 2016
A little more elegant indeed
Jan
on 2 Mar 2016
Less chances for creating a bug by a typo :-) And no warnings for a missing pre-allocation.
mechE
on 13 May 2019
How to do the same thing in a colum table in ui. I want to populate the colum of a table in the same way but I am getting some java string error.
Categories
Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!