How can I get the GUI to browse for a specific file?

108 views (last 30 days)
Sue on 4 Jul 2011
Answered: Ka Mirul on 20 Nov 2017
Hi. I am new to this Matlab GUI and would love your help.
I have an m-file that runs perfectly but wish to put in into a GUI (using GUIDE) to make it more user-friendly.
In my m-file, I manually insert the pathname for the directory in which the necessary jpeg images are to be found. How do I execute this in the GUI? How can I get the user to be able to select the path/file in which the GUI can extract and use the JPEGs within the selected file? I think I need some kind of "browse the user's computer directory" function but am not sure how to achieve this? And how do I then put this path into the m-file?
Any help and advice would be greatly appreciated.
Sue x

Accepted Answer

Gerd on 4 Jul 2011
Hi Sue,
you can use uigetfile to open a dialog where the user can choose the file.
Gerd on 4 Jul 2011
Sue can you sent me the .fig file and the .m file using the contact. I think we are talking about different stuff :-)

Sign in to comment.

More Answers (3)

Ka Mirul
Ka Mirul on 20 Nov 2017
I found a video that help me, it is about creating GUI to browse an image and display the image and its name. It should help you :

Narciso Neves
Narciso Neves on 31 Jul 2014
Sue, there is a typo on directoy = uigetdir; Is missing an "r" in "directory" ... that's why it was failing. :D

Jaime López
Jaime López on 8 Mar 2017
This is a simplistic version of what I usually add:
I use two handles for the path: InitialPath: the path where I execute the function, you need to get back there in order to keep on executing it. CurrentPath: the path where the user is currently searching.
I create a listbox object for the user to browse in, where I print the current directory list:
function listbox_Ruta_Callback(hObject, eventdata, handles)
option = hObject.Value;
directories = hObject.String;
if strcmp(directories(option,1:2),'. ') || strcmp(directories(option,1:2),'..') % two first options are to go to the higher directory
handles.CurrentPath= pwd;
if isempty(strfind(directories(option,:),'.')) %If it is a folder, get inside it (maybe better with isdir() function, but I haven't tried)
handles.CurrentPath= pwd;
hObject.Value = 1; % You have to reset the value to prevent some errors.
%If it is a file, do wahtever you want with it, or pass the information with a handler to another function
handles.CurrentPath= pwd;
hObject.String = ls;
% Update modified information
guidata(hObject, handles);
My coments were originally in Spanish, so sorry if I left anything untranslated or poorly done.

Community Treasure Hunt

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

Start Hunting!