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

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

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

按扩展名筛选文件

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

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

指定筛选器列表和对话框标题

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

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

指定筛选器和筛选器说明

通过以字符向量元胞数组的形式传递 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');

指定默认文件名

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

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

指定默认路径和文件

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

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

启用多选

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

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

输入参数

全部折叠

文件筛选器,指定为字符向量、字符向量元胞数组或字符串数组。

  • 如果 filter 是文件名,该文件名将出现在文件名字段中。该文件的扩展名即为默认筛选器值。(筛选器字段没有标签,显示在文件名字段的右侧。)

  • filter 可以包含路径。该路径可以包含以下字符:

    • .

    • ..

    • \

    • /

    • ~

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

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

  • 如果指定的路径不存在,uigetfile 将在当前文件夹中打开对话框。

  • 如果 filter 是文件夹名称,MATLAB 将显示该文件夹的内容。文件名字段为空,并且不应用任何筛选器。要指定文件夹名称,filter 的最后一个字符必须是反斜杠 (\) 或正斜杠 (/)。

  • 如果 filter 是字符向量元胞数组或字符串数组,则可以包含两列。第一列包含文件扩展名列表。可选的第二列包含相应的说明列表。这些说明替换筛选器字段中的标准说明。说明不能为空。

示例: 'myfile.m'

示例: '../myfile.m'

示例: '../..'

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

示例: 'Select a File'

文件名字段的默认值,指定为字符向量或字符串标量。defname 值可以指定路径,也可以指定路径加文件名。

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

    • .

    • ..

    • \

    • /

    • ~

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

示例: '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。

如果用户点击取消按钮或窗口关闭按钮 (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 之前推出