Next Available Filename

版本 3.1.0 (9.2 KB) 作者: Stephen23
Returns the next unused file or folder name. The name is created by incrementing a numbered suffix.
453.0 次下载
更新时间 2024/1/6

查看许可证

编者注: This file was selected as MATLAB Central Pick of the Week

NEXTNAME returns a file or folder name, incrementing a numbered suffix such that the returned name is not currently used by any file or folder.
On occasion it may be required to save files without knowing or requiring a particular number sequence, for example when saving interim results or backups during large calculations. Using an internal counter is one option, but this does not work when there are already existing files with those names, or when the code is stopped-and-started, or throws errors while calculating. This function offers one simple solution: call the function with the required file (or folder) name, the required suffix (including the starting integer) and the file extension (if any), and it will return the next unused name.
Note that unlike some other submissions on FEX, this function compares the number *values*, not the literal filenames! This means you will not get "x001" if e.g. "x1" or "x01" or "x00000001" already exist in the specified location.
Inputs
Three text inputs are required (may be string scalars or char vectors):
1. The basic file or folder name, without the file extension (if any). If the location to be checked for existing files is not the current directory then the basic name must use a relative or absolute path to that location.
2. The suffix, which must contain the starting number. Some examples of suffixes are: '0', '_1', '(5)', '-0001-backup', '_temp1', etc.. This suffix will be appended to the file/folder name (before the file extension), and the number will be incremented to identify the first unused name starting from the number provided in the suffix. Thus the suffix defines:
* the starting value (can be zero or any positive integer, i.e. 0, 1, 2, 3, etc.).
* the minimum length of the output number (use leading zeros as required).
* any literal characters.
3. The file extension, if required. For folders and files without extensions use '' or "".
Note the inputs 1 and 3 are easily obtained from a filename using FILEPARTS
Examples
%% Current directory contains files 'A1.txt', 'A2.txt', and 'A4.txt':
>> nextname("A","1",".txt")
ans = "A3.txt"
>> nextname("A","001",".txt")
ans = "A003.txt"
%% Subdirectory 'HTML' contains folders 'B(1)', 'B(2)', and 'B(4)':
>> nextname('HTML/B','(1)','')
ans = 'B(3)'
>> nextname('HTML/B','(001)','')
ans = 'B(003)'
>> nextname('HTML/B','(1)','',false) % default = name only.
ans = 'B(3)'
>> nextname('HTML/B','(1)','',true) % with the path from the input name.
ans = 'HTML/B(3)'

引用格式

Stephen23 (2024). Next Available Filename (https://www.mathworks.com/matlabcentral/fileexchange/64108-next-available-filename), MATLAB Central File Exchange. 检索来源 .

MATLAB 版本兼容性
创建方式 R2010b
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 File Operations 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
3.1.0

* Return name with same class as first input.

3.0.2

* 4th input accepts numeric or logical.
* Improve documentation.

3.0.1

Simplify string handling.

3.0.0

* Accepts string scalar or char vector inputs.
* Add error IDs.

2.0.0

* Separate file extension input (allows for no-ext names and folders with periods).

1.3.1

* Simplify documentation examples.

1.3.0

* Optional third input selects to return name only or same path as input name.
* Use UINT64 for simpler integer handling.

1.2.1

* Improve efficiency.

1.2.0

* Handle single matched subfolder.

1.1.0.0

* Add check for no matching files.

1.0.0.0

* Update HTML docs.