Open file selection dialog box
filename = uigetfile
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec)
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle)
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName)
[FileName,PathName,FilterIndex] = uigetfile(...,'MultiSelect',selectmode
)
filename = uigetfile
displays a modal dialog
box that lists files in the current folder and enables you to select
or enter the name of a file. If the file name is valid (and the file
exists), uigetfile
returns the file name when
you click Open. If you click Cancel (or
the window’s close box), uigetfile
returns 0
.
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec)
displays
only those files with extensions that match FilterSpec
.
On some platforms uigetfile
also displays in
gray the files that do not match FilterSpec
. FilterSpec
can
be a character vector or a cell array of character vectors, and can
include the *
wildcard.
If FilterSpec
is a file name, that
file name displays, selected in the File name field.
The extension of the file is the default filter.
FilterSpec
can include a path.
That path can contain '.'
,'..'
, \
, '/'
,
or '~'
. For example, '../*.m'
lists
all code files with a .m
extension in the folder
above the current folder.
If FilterSpec
is a folder name, uigetfile
displays
the contents of that folder, the File name field
is empty, and no filter applies. To specify a folder name, make the
last character of FilterSpec
either '\'
or '/'
.
If FilterSpec
is a cell array of
character vectors, it can include two columns. The first column contains
a list of file extensions. The optional second column contains a corresponding
list of descriptions. These descriptions replace standard descriptions
in the Files of type field. A description cannot
be empty. The second and third examples illustrate use of a cell array
as FilterSpec
.
If FilterSpec
is missing or empty, uigetfile
uses
the default list of file types (for example, all MATLAB® files).
After you click Open and if the file
name exists,uigetfile
returns the name of the file
in FileName
and its path in PathName
.
If you click Cancel or the window’s
close box, the function sets FileName
and PathName
to 0
.
FilterIndex
is the index of the filter selected
in the dialog box. Indexing starts at 1. If you click Cancel or the window’s close box, the
function sets FilterIndex
to 0
.
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle)
displays
a dialog box that has the title DialogTitle
. To
use the default file types and specify a dialog title, enter
uigetfile('',DialogTitle)
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName)
displays
a dialog box in which the file name specified by DefaultName
appears
in the File name field. DefaultName
can
also be a path or a path/filename. In this case, uigetfile
opens
the dialog box in the folder specified by the path
.
You can use '.'
,'..'
, \
,
or '/'
in the DefaultName
argument.
To specify a folder name, make the last character of DefaultName
either '\'
or '/'
.
If the specified path does not exist, uigetfile
opens
the dialog box in the current folder.
[FileName,PathName,FilterIndex] = uigetfile(...,'MultiSelect',
opens
the dialog box in multiselect mode. Valid values
for selectmode
)selectmode
are 'on'
and 'off'
(the
default, which allows single selection only). If 'MultiSelect'
is 'on'
and
you select more than one file in the dialog box, then FileName
is
a cell array of character vectors. Each array element contains the
name of a selected file. File names in the cell array are sorted in
the order your platform uses. If you select multiple files, they must
be in the same folder, otherwise MATLAB displays a warning dialog
box. Be aware that Microsoft® Windows® libraries can span
multiple folders. PathName
is a character vector
identifying the folder containing the files.
If you include either of the wildcard characters, '*'
or '?'
,
in a file name, uigetfile
does not respond to
clicking Open. The dialog box remains open
until you cancel it or remove the wildcard characters. This restriction
applies to all platforms, even to file systems that permit these characters
in file names.
The visual characteristics of the dialog box depend on the operating system that runs your code. For instance, some operating systems do not show title bars on dialog boxes. If you pass a dialog box title to the uigetfile function, those operating systems will not display the title.
This dialog box lists all MATLAB code files with a .m
extension
in the current directory. uigetfile
returns the
name and path to the file you select.
[FileName,PathName] = uigetfile('*.m','Select the MATLAB code file');
To create a list of file types that appears in the file type drop-down list, separate the file extensions with semicolons, as in the following code.
[filename, pathname] = ... uigetfile({'*.m';'*.slx';'*.mat';'*.*'},'File Selector');
If you want to create a list of file types and give them descriptions,
use a cell array, as in the following code. This example also associates
multiple file types with the 'MATLAB Files'
and 'Models'
descriptions.
[filename, pathname] = uigetfile( ... {'*.m;*.mlx;*.fig;*.mat;*.slx;*.mdl',... 'MATLAB Files (*.m,*.mlx,*.fig,*.mat,*.slx,*.mdl)'; '*.m;*.mlx', 'Code files (*.m,*.mlx)'; ... '*.fig','Figures (*.fig)'; ... '*.mat','MAT-files (*.mat)'; ... '*.mdl;*.slx','Models (*.slx, *.mdl)'; ... '*.*', 'All Files (*.*)'}, ... 'Pick a file');
The first column of the cell array contains the file extensions,
while the second contains your descriptions of the file types. In
this example, the first entry of column one contains several extensions,
separated by semicolons, which are all associated with the description 'MATLAB
Files (*.m,*.mlx,*.fig,*.mat,*.slx,*.mdl)'
. The code produces
the dialog box shown in the following figure.
The following code lets you select a file, and then displays a message in the Command Window that summarizes the result.
[filename, pathname] = uigetfile('*.m', 'Select a MATLAB code file'); if isequal(filename,0) disp('User selected Cancel') else disp(['User selected ', fullfile(pathname, filename)]) end
This code creates a list of file types and gives them descriptions that are different from the defaults. It also enables multiple-file selection. Select multiple files by holding down the Shift or Ctrl key and clicking on additional file names.
[filename, pathname, filterindex] = uigetfile( ... { '*.mat','MAT-files (*.mat)'; ... '*.slx;*.mdl','Models (*.slx, *.mdl)'; ... '*.*', 'All Files (*.*)'}, ... 'Pick a file', ... 'MultiSelect', 'on');
You can use the DefaultName
argument to specify
a start path and a default file name for the dialog box.
filename = uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';... '*.*','All Files' },'mytitle',... 'C:\Work\setpos1.png')
Use the dir
function
to return a filtered or unfiltered list of files in your current folder
or a folder you specify. dir
also can return
file attributes.