为临时文件创建唯一名称

在编写脚本或函数时,可能需要一个或多个临时文件以便例如存储一些数据。

为了避免覆盖现有文件或隐藏 MATLAB 函数,可以使用 tempname函数为系统临时文件夹中的临时文件生成唯一名称

my_temp_file=tempname

生成文件名时没有扩展名; 可以通过将所需的扩展名连接到 tempname 生成的名称来添加它

my_temp_file_with_ext=[tempname '.txt']

可以通过调用 tempdir 函数来检索系统临时文件夹的 locaton。

如果在执行函数/脚本期间不再需要临时文件,可以使用 delete 函数删除它

由于 delete 不要求确认,因此将 on 设置为在 recycle 文件夹中移动要删除的文件的选项可能很有用。

这可以通过以下方式使用函数回收来完成 :

recycle('on')

在以下示例中,提出了函数 tempnamedeleterecycle 的可能用法。

%
% Create some example data
%
theta=0:.1:2*pi;
x=cos(theta);
y=sin(theta);
%
% Generate the temporary filename
%
my_temp_file=[tempname '.mat'];
%
% Split the filename (path, name, extension) and display them in a message box
[tmp_file_path,tmp_file_name, tmp_file_ext]=fileparts(my_temp_file)
uiwait(msgbox(sprintf('Path= %s\nName= %s\nExt= %s', ...
              tmp_file_path,tmp_file_name,tmp_file_ext),'TEMPORARY FILE'))
%
% Save the varaibles in a temporary file
%
save(my_temp_file,'x','y','theta')
%
% Load the varaibles from the temporary file
%
load(my_temp_file)
%
% Set the reclycle option on
%
recycle('on')
%
% Delete the temporary file
%
delete(my_temp_file)

警告

使用 java.util.UUID.randomUUID 方法( randomUUID ) 生成临时文件名。

如果在没有 JVM 的情况下运行 MATLAB,则
根据 CPU 计数器和时间使用 matlab.internal.timing.timing 生成临时文件名。在这种情况下,临时文件名不保证是唯一的。