Main Content

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

uiputfile

打开用于保存文件的对话框

说明

file = uiputfile 打开一个模态对话框,用于选择或指定文件。该对话框列出当前文件夹中的文件和文件夹。

  • 如果用户指定有效的文件名并点击保存,MATLAB® 将在 file 中返回该文件名。

  • 如果用户取消该对话框,MATLAB 会将 0 返回给 file

注意

  • 成功执行 uiputfile 将返回用户指定的新文件或现有文件的名称。它不会创建文件。

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

[file,path] = uiputfile 会将选定或指定的文件路径返回给 path。如果用户取消该对话框,则 MATLAB 会将 0 同时返回给两个输出参数。

[file,path,indx] = uiputfile 返回在对话框中选择的保存类型值的索引。索引从 1 开始。如果用户点击取消按钮或窗口关闭按钮 (X),则 MATLAB 将对所有输出参数返回 0

示例

___ = uiputfile(filter) 仅显示扩展名与 filter 匹配的文件。在某些平台上,uiputfile 也会显示任何与 filter 不匹配的文件,但它们会灰显。uiputfile 函数将 All Files 追加到文件类型列表中。

如果 filter 是文件名,则 uiputfile 会在文件名字段中显示该文件名,并使用它的文件扩展名作为默认过滤器。

可以将此语法与上述语法中的任何输出参数结合使用。

示例

___ = uiputfile(filter,title) 打开具有指定标题的对话框。要使用默认文件过滤器进行过滤,但指定自定义标题,请使用空引号作为过滤器值。

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

示例

___ = uiputfile(filter,title,defname) 打开一个对话框并在文件名字段中显示由 defname 指定的文件名。

示例

全部折叠

创建一个对话框并将 filter 指定为 animinit.m。代码运行时,文件名字段包含指定的文件名,保存类型字段设置为 *.m

[file,path,indx] = uiputfile('animinit.m');

File selection dialog box with the file name and save as type set. There are buttons to save and cancel in the bottom right.

通过用分号分隔 filter 输入参数中的每个文件扩展名,在保存类型列表框中显示多个文件类型。

filter = {'*.m';'*.slx';'*.mat';'*.*'};
[file, path] = uiputfile(filter);

File selection dialog box. The save as type drop-down lists the different file extension options.

通过使用元胞数组提供 filter 输入值,创建一个文件类型列表并为其中的文件类型指定不同于默认设置的描述。为 'MATLAB Files''Models' 这两种描述关联多个文件类型。

输入 filter 元胞数组的第一列包含文件扩展名,第二列包含文件类型的描述。例如,第一列的第一个条目包含用分号分隔的多个扩展名。这些文件类型均与 'MATLAB Files (*.m,*.mlx,*.fig,*.mat,*.slx,*.mdl)' 描述关联。

[filename, pathname, filterindex] = uiputfile( ...
{'*.m;*.fig;*.mat;*.slx;*.mdl',...
 'MATLAB Files (*.m,*.mlx,*.fig,*.mat,*.slx,*.mdl)';
 '*.m;*.mlx', 'program files (*.m,*.mlx)';...
 '*.fig','Figures (*.fig)';...
 '*.mat','MAT-files (*.mat)';...
 '*.slx;*.mdl','Models (*.slx,*.mdl)';...
 '*.*',  'All Files (*.*)'});

File selection dialog box. The save as type drop-down lists the different file extension descriptions.

创建一个标题为 'Workspace File' 的对话框,并将保存类型字段设置为 MAT 文件。

[file,path] = uiputfile('*.mat','Workspace File');

File selection dialog box. The save as type drop-down list option is "MAT-files (*.mat)"

使用通配符作为过滤器并指定默认文件名将在文件名字段中显示默认文件,但用户可在对话框中查看所有类型的文件。

[file,path,indx] = uiputfile('*.*','File Selection','test.m');

File selection dialog box with many files displayed. The dialog title is File Selection and the text in the File name edit field is test.m.

打开“选择要写入的文件”对话框,然后选择一个文件。MATLAB 会自动打开“确认另存为”对话框。

  • 如果您在确认对话框中点击确定,则 MATLAB 将关闭这两个对话框,并在命令行窗口显示您的选择。

  • 如果您在确认对话框中点击,然后在“选择要写入的文件”对话框中点击取消,则命令行窗口将显示 User clicked Cancel.

[file,path] = uiputfile('*.m');
if isequal(file,0) || isequal(path,0)
   disp('User clicked Cancel.')
else
   disp(['User selected ',fullfile(path,file),...
         ' and then clicked Save.'])
end

输入参数

全部折叠

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

输入行为示例
文件名

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

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

  • 'icon.png'

  • 'C:\Documents\icon.png'

  • '..\icon.png'

文件夹

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

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

  • 'C:\Documents\'

文件扩展名过滤器

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

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

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

  • '*.m'

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

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

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

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

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

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

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

  • .

  • ..

  • \

  • /

  • ~

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

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

uiputfile('','Select File')

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

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

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

示例: 'File Selector'

对话框打开时显示在文件名字段中的默认文件名,指定为字符向量或字符串标量。

defname 值可以包含路径和文件名,也可以只包含路径。您可以在 defname 参数中使用以下任何字符:

.
..
\
/
~

要将 defname 指定为仅包含文件夹,请将 defname 中的最后一个字符指定为反斜杠 \ 或正斜杠 /。按此操作时,MATLAB 将在路径指定的文件夹中打开对话框。如果您指定的路径不存在,MATLAB 将在当前文件夹中打开对话框。

示例: 'myfile.m'

示例: '../myfile.m'

输出参数

全部折叠

用户指定的文件名,以字符向量或字符串标量形式返回。用户可以通过以下方式指定文件名:在对话框中选择文件名、在文件名字段中键入文件名或者接受默认文件名(如果您指定了默认文件名)。如果用户取消该对话框,MATLAB 会将 0 返回给 file

用户指定的文件名的路径,以字符向量形式返回,或者返回 0。如果用户取消该对话框,MATLAB 会将 0 返回给 path

保存类型的索引,以整数形式返回。如下图所示,索引对应于各个保存类型选项。索引从 1 开始。

Save as type drop-down list. The drop-down list contains four different file extensions with the first option labeled with indx = 1, the second with indx = 2, and so on.

如果用户点击取消按钮或对话框关闭按钮 (X),或者文件不存在,则 MATLAB 将为 indx 返回 0

详细信息

全部折叠

模态对话框

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

提示

  • 要使用 MATLAB 和 MATLAB 工具箱函数将数据写入用户指定的文件和位置,可使用 uiputfile 返回的路径和文件名。例如:

    • 使用 fprintf 将数据写入文本文件。

    • 使用 imwrite 将图像写入图形文件。

    • 使用 xlswrite 将矩阵写入 Microsoft® Excel® 电子表格。例如,下面的代码创建了一个矩阵 A 和一个对话框,用于从用户获取文件名、根据返回的值生成完整的文件名,然后将该矩阵写入用户指定的 Excel 文件。

      A = [12.7 5.02 -98 63.9 0 -.2 56];
      [file,path] = uiputfile('*.xlsx');
      filename = fullfile(path,file);
      xlswrite(filename,A);
      

版本历史记录

在 R2006a 之前推出

另请参阅

| | |