编者按:该文件被选为MATLAB Central本周精选
返回下一个可用的文件名或文件夹名,通过递增编号后缀来创建名称。
有时可能需要在不知道或不需要特定数字序列的情况下保存文件,例如在大型计算期间保存临时结果或备份时。使用内部计数器是一种选择,但是当已经存在具有这些名称的文件时,或者当代码停止和启动时,或者在计算时抛出错误时,这不起作用。此函数提供了一个简单的解决方案:使用所需的文件(或文件夹)名称、所需的后缀(包括起始整数)和文件扩展名(如果有)调用该函数,它将返回下一个未使用的名称。
注意,不同于FEX上的其他提交,这个函数比较的是数字*值*,而不是字面文件名!这意味着如果“x1”或“x01”已经存在于指定的位置,您将不会得到“x001”。
% % % %的输入
需要三个文本输入(可以是字符串标量或字符向量):
1.基本的文件或文件夹名,没有文件扩展名(如果有的话)。如果要检查现有文件的位置不是当前目录,则基本名称必须使用到该位置的相对或绝对路径。
2.后缀,必须包含起始号码。后缀的例子有:'0','_1','(5)','.backup. '。0001”、“_temp_050”等。该后缀将被附加到文件/文件夹名称(在文件扩展名之前),并且该编号将递增,以标识从后缀中提供的编号开始的第一个未使用的名称。因此后缀定义:
*起始值(可以是零或任何正整数,如0、1、2等)。
*输出数字的最小长度(根据需要使用前导零)。
*任何文字字符。
3.如果需要,文件扩展名。对于没有扩展名的文件夹和文件,使用“或”。
%%示例%%
%%%当前目录包含文件A1。米”、“A2。米”和“A4.m”:
>>下一个名称('A','1','.m')
ans = ' A3.m '
> > nextname (' A ', ' 001 ', ' m ')
ans = ' A003.m '
%%%子目录'HTML'包含文件夹'B(1)', 'B(2)'和'B(4)':
> > nextname(“HTML \ B”、“(1)”,”)
ans = ' B (3) '
>>下一个名称('HTML\B','(001'),)
ans = ' B (003) '
>>nextname('HTML\B','(1',,false)%default=仅限名称。
ans = ' B (3) '
>> nextname('HTML\B','(1)', ",true) %前置与输入名相同的路径。
ans='HTML\B(3)'
引用作为
斯蒂芬(2021)。下一个可用文件名(//www.tatmou.com/matlabcentral/fileexchange/64108-next-available-filename),MATLAB中心文件交换.