Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

uigetfile

打开文件选择对话框

说明

file = uigetfile 打开一个模态对话框,其中列出了当前文件夹中的文件。用户可以在这里选择或输入文件的名称。如果文件存在并且有效,当用户点击打开时,uigetfile 将返回文件名。如果用户点击取消或窗口关闭按钮 (X),uigetfile 将返回 0

当用户点击打开时,[file,path] = uigetfile 将返回文件的名称和路径。如果用户点击取消或窗口关闭按钮 (X),uigetfile 将为两个输出参数都返回 0

示例

当用户点击打开时,[file,path,indx] = uigetfile 将返回在对话框中选择的过滤器的索引。

示例

___ = uigetfile(filter) 指定文件扩展名,根据该扩展名过滤对话框中显示的文件。可以将此语法与上述语法中的任何输出参数结合使用。

通常,只显示文件扩展名匹配的文件。在某些平台上,uigetfile 还会显示与过滤器不匹配的文件,但这些文件的文件名会灰显。如果过滤器缺失或为空,uigetfile 将使用默认文件类型列表(例如,所有 MATLAB® 文件)。

示例

___ = uigetfile(filter,title) 指定对话框标题。要使用默认文件过滤器进行过滤,但指定自定义标题,请使用空引号作为过滤器值。例如:

file = uigetfile('','Select a File')

示例

___ = uigetfile(filter,title,defname)文件名字段或对话框打开的默认文件夹指定默认文件名。

示例

___ = uigetfile(___,'MultiSelect',mode) 指定用户是否可以选择多个文件。将模式设置为 'on' 将允许进行多选。默认情况下设置为 'off'

Windows® 库可以跨多个文件夹。

注意

对话框的可视特征取决于运行代码的操作系统。例如,某些操作系统不在对话框中显示标题栏。如果您向 uigetfile 函数传递对话框标题,这些操作系统不会显示标题。

示例

全部折叠

显示在对话框中选择的文件的完整文件路径。使用 dispfullfile 函数添加说明性文本并串联 pathfile 输出值。

[file,path] = uigetfile('*.m');
if isequal(file,0)
   disp('User selected Cancel');
else
   disp(['User selected ', fullfile(path,file)]);
end

File selection dialog box. The visible files are .m files and the file filter drop-down reads (*.m).

User selected H:\Documents\MyCode\surf.m

在命令行窗口中显示选定过滤器的索引及相关的说明性文本。使用 num2str 函数将数值型过滤器索引值 (indx) 转换为字符数组。这样可使索引值成为 disp 函数的有效输入。

[file,path,indx] = uigetfile;
if isequal(file,0)
   disp('User selected Cancel')
else
   disp(['User selected ', fullfile(path, file),... 
         ' and filter index: ', num2str(indx)])
end

File selection dialog box. The dialog shows files with various extensions, and the file filter drop-down contains the extensions types.

User selected H:\Documents\MyCode\peaks.fig and filter index: 3

通过指定 '*. m' 作为 filter 输入参数,在对话框中仅显示扩展名为 .m 的文件。

[file,path] = uigetfile('*.m');

File selection dialog box. The visible files are .m files and the file filter drop-down reads (*.m).

创建一个显示在文件过滤器下拉列表中的文件扩展名列表。以字符向量元胞数组的形式传递 filter 输入参数,并用分号分隔文件扩展名。

[file,path] = uigetfile({'*.m';'*.slx';'*.mat';'*.*'},...
                          'File Selector');

File selection dialog box. The file filter drop-down has an option for each specified file extension, and (*.m) is selected. The visible files are .m files.

通过以字符向量元胞数组的形式传递 filter 输入参数,创建一个文件扩展名列表并为扩展名提供说明。元胞数组的第一列包含文件扩展名,第二列包含文件类型的自定义说明。此示例还将多个文件类型与 'MATLAB Files''Models' 说明关联。

[file,path,indx] = 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 (*.*)'}, ...
   'Select a File');

File selection dialog box. The file filter drop-down lists the specified file filter descriptions. The visible files are .m and .fig files.

要在对话框打开时在文件名字段中显示一个默认的文件名,请将此文件名作为 defname 输入参数进行传递。

 [file,path] = uigetfile('*.png',...
               'Select an icon file','icon.png')

File selection dialog box. The title of the dialog box is Select an icon file and the default file name is icon.png. The visible files are .png files.

要在对话框打开时在文件名字段中显示默认路径下的默认文件名,请将完整文件名作为 filter 输入参数进行传递。

[file,path] = uigetfile('C:\Documents\Work\icon.png',...
                        'Select an Image File')

File selection dialog box. The title of the dialog box is Select an Image File. The dialog is open to the C:\Documents\Work folder and the default file name is icon.png. The visible files are .png files.

通过以字符向量元胞数组的形式传递 filter 输入参数,创建一个文件扩展名列表。指定对话框打开的文件夹。

[file,path] = uigetfile({'*.png';'*.m'},...
               'Select a file','C:\Documents\AppBuildingFiles\')

File selection dialog box. The title of the dialog box is Select a file. The dialog is open to the C:\Documents\AppBuildingFiles folder and the file filter drop-down contains a .png and a .m filter.

'Multiselect' 选项设置为 'on' 可以启用多文件选择。用户可以通过按住 ShiftCtrl 键并点击文件名来选择多个文件。

[file,path] = uigetfile('*.m',...
   'Select One or More Files', ...
   'MultiSelect', 'on');

File selection dialog box. The title of the dialog box is Select One or More Files. Multiple files in the dialog box are selected.

输入参数

全部折叠

文件过滤器,指定为字符向量、字符向量元胞数组或字符串数组。下表列出了可以传递给 filter 参数的输入的类型以及对话框的对应行为。

输入行为示例
文件名

该文件名出现在对话框的文件名字段中。该文件的扩展名即为默认过滤器值。

如果文件名包含路径,对话框将打开到指定的文件夹。否则,它会打开到当前文件夹。如果指定的文件夹不存在,则 uigetfile 使用对话框打开到当前文件夹。

  • 'icon.png'

  • 'C:\Documents\icon.png'

  • '..\icon.png'

文件夹

对话框显示文件夹的内容。文件名字段为空,并且不应用任何过滤器。要指定文件夹名称,filter 的最后一个字符必须是反斜杠 (\) 或正斜杠 (/)。

如果指定的文件夹不存在,则 uigetfile 使用对话框打开到当前文件夹。

  • 'C:\Documents\'

文件扩展名过滤器

对话框仅显示具有匹配的文件扩展名的文件。

要允许用户在多个过滤器之间进行选择,请为每个过滤器指定具有项目的元胞数组或字符串数组。过滤器出现在对话框的过滤器字段下拉菜单中。

要创建一个具有多个文件扩展名的过滤器,请在单个字符向量或字符串中指定扩展名,扩展名之间用分号 (;) 分隔。

  • '*.m'

  • {'*.m';'*.mlx'}

  • {'*.m;*.mlx';'*.png;*.jpeg'}

具有描述的文件扩展名过滤器

对话框在过滤器字段中显示扩展名及其描述。用户可以在过滤器之间进行选择。

要显示过滤器描述,请在元胞数组或字符串数组中指定两列。第一列包含文件扩展名列表。第二列包含相应的说明列表。这些说明替换过滤器字段中的标准说明。说明不能为空。

  • {'*.m;*.mlx','Code files';'*.png;*.jpeg','Image files'}

如果文件过滤器包含路径,该路径可以包含以下字符:

  • .

  • ..

  • \

  • /

  • ~

例如,'../*.m' 列出位于当前文件夹上一级文件夹中具有 .m 扩展名的所有代码文件。

要使用默认文件过滤器,请为过滤器值指定空引号。例如,要使用默认文件过滤器并指定自定义标题,请使用以下语法:

uigetfile('','Select File')

注意

如果您或用户在文件名中包含星号 (*) 或问号 (?),则点击打开时,uigetfile 不会响应。且对话框会一直保持打开状态,直到用户点击取消或删除名称中的通配符为止。此限制适用于所有平台,即使允许在文件名中使用这些字符的文件系统也受此限制。

对话框标题,指定为字符向量或字符串标量。

要使用默认对话框标题,请为标题值使用空引号。例如,要指定文件过滤器、默认标题和文件名字段值,请使用以下语法:

uigetfile('*.m','','myFile.m')

示例: "Select a File"

对话框打开时显示在文件名字段中的默认文件名,指定为字符向量或字符串标量。defname 值可以指定路径,也可以指定路径加文件名。

  • 如果指定路径,则可以包含以下字符:

    • .

    • ..

    • \

    • /

    • ~

  • 要仅指定文件夹名称,请使用反斜杠 (\) 或正斜杠 (/) 作为 defname 值的最后一个字符。

示例: 'myfile.mat'

示例: 'C:\Documents\my_MATLAB_files'

示例: '..\myfile.mat'

示例: '..\Documents\'

多选模式,指定为 'on''off'。如果多选模式关闭,则用户只能选择一个文件。如果多选模式打开,则用户可以选择多个文件。如果用户选择多个文件,它们必须在同一个文件夹中;否则 MATLAB 将显示警告对话框。Microsoft® Windows 库可以跨多个文件夹。

输出参数

全部折叠

用户在对话框中指定的文件名,以字符向量或字符向量元胞数组的形式返回。

'MultiSelect' 设置为 'on' 并且用户选择多个文件时,将返回一个字符向量元胞数组。每个数组元素都包含所选文件的名称。元胞数组中的文件名按照用户平台使用的顺序排序。如果用户选择多个文件,它们必须在同一个文件夹中,否则 MATLAB 将显示警告对话框。

如果用户点击取消按钮或窗口关闭按钮 (X),MATLAB 将返回文件值 0

指定的一个或多个文件的路径,以字符向量形式返回。

如果用户点击取消按钮或窗口关闭按钮 (X),MATLAB 将返回文件值 0

选定的过滤器索引,以整数形式返回。

过滤器是不带标签的对话框控件,显示在对话框中文件名字段的右侧。过滤器的索引值与过滤器下拉列表中所选择的项目相对应。第一行的索引为 1。

File name field and drop-down list. The drop-down list contains multiple options for file extension filters.

如果用户点击取消按钮或窗口关闭按钮 (X),MATLAB 将返回索引值 0

详细信息

全部折叠

模态对话框

模态对话框阻止用户在响应该对话框之前与其他 MATLAB 窗口进行交互。

提示

  • 利用 uigetfile 返回的路径和文件名,可以使用 MATLAB 和 MATLAB 工具箱中的各种输入和输出函数打开、读取或分析文件。例如下面列出的函数:

    • 用于读取图像的 imread 函数。

    • 用于读取 Microsoft Excel 文件的 xlsread 函数。

    • 用于操作 MATLAB 代码文件的 openeditrun 函数。例如,下面的代码会创建一个对话框,从用户处获取 MATLAB 代码的文件名、根据返回的值生成完整的文件名,然后再运行用户指定的代码文件。

      [file,path] = uigetfile('*.m');
      selectedfile = fullfile(path,file);
      run(selectedfile);
      

替代功能

使用 dir 函数可以返回当前文件夹或指定文件夹中已过滤或未过滤的文件列表。dir 函数还可以返回文件属性。

版本历史记录

在 R2006a 之前推出

另请参阅

| |