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');

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

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

通过使用元胞数组提供 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 (*.*)'});

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

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

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

[file,name,path] = uiputfile('*.*','File Selection','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

输入参数

全部折叠

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

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

.
..
\
/
~

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

示例: 'myfile.m'

示例: '../myfile.m'

文件类型筛选器设定,指定为字符向量、字符向量元胞数组或字符串数组。MATLAB 会在对话框所显示的文件类型列表的最后追加 All Files 文件类型。filter 值可以包含通配符 (*)。

示例: *.m

示例: 'MATLAB Files (*.m,*.mlx,*.fig,*.mat,*.slx,*.mdl)'

对话框标题,指定为字符向量或字符串标量。要使用默认文件筛选器进行筛选,但指定自定义标题,请使用空引号作为筛选器值。例如:

uiputfile(' ','Select File')

示例: 'File Selector'

输出参数

全部折叠

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

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

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

  • 如果用户指定的文件名已存在,则会打开一个警告对话框,声明该文件已存在,并提供一个替换该文件的选项。

    • 如果用户在警告对话框中点击,则 MATLAB 将替换现有文件并返回文件名。

    • 如果用户在警告对话框中点击,则控制权返回给 uiputfile 对话框,允许用户指定不同的文件名。

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

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

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

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