这段代码是一个更新版本的效用函数我最初发布作为一个堆栈溢出回答以下问题:“如何获得一个特定的目录下的所有文件在MATLAB ?”(http://stackoverflow.com/q/2652630/52738)。
代码存储库和之前版本可以在GitHub (https://github.com/kpeaton/dirPlus)。
用法:
= dirPlus列表(ROOTPATH)将通过下面的文件夹树递归搜索ROOTPATH并收集细胞阵列它找到的所有文件的列表。列表将包含从ROOTPATH每个文件的绝对路径。
列表= dirPlus (ROOTPATH PropertyName, PropertyValue,…)将修改如何选定的文件和目录,列表的格式,根据指定的属性/值对。有效的属性,用户可以设置:
一般:
“结构”——一个逻辑值确定输出列表应该是一个结构数组的形式返回的DIR函数。如果这是真的,将n×1结构数组列表而不是单元阵列。
“深度”——一个非负整数的值最大的文件夹树深度dirPlus将搜索。ROOTPATH值0只会搜索,值1将在ROOTPATH及其子文件夹,搜索等。默认(和最大允许)值是当前根对象上设置的递归限制(即得到(0,' RecursionLimit '))。
“ReturnDirs”——一个逻辑值确定输出将文件或子目录的列表。如果这是真的,将一系列细胞的子目录名单/路径。默认是假的。
“PrependPath”——一个逻辑值确定从ROOTPATH文件/目录的完整路径前缀中每个文件列表。默认的真正将预谋的完整路径,否则就返回文件/子目录的名称。这个设置将被忽略,如果“结构”的观点是正确的。
FILE-SPECIFIC:
“FileFilter”——一个字符串定义一个正则表达式模式将被应用到文件的名字。只会返回模式匹配的文件列表。默认是“(即包括所有文件)。
“ValidateFcn”——一个处理函数作为输入结构的形式返回的DIR函数并返回一个逻辑值。这个函数将被应用到所有文件发现,只有文件真正的返回值将包含在列表中。默认是[](即包括所有文件)。
DIRECTORY-SPECIFIC:
“DirFilter”——一个字符串定义一个正则表达式模式将被应用到子目录的名称。只有子目录匹配模式将被认为是有效的(即包含在自己或自己的文件列表包含在列表)。默认是“(即所有子目录是有效的)。“RecurseInvalid”参数的设置决定了如果无效的子目录还递归下降。
“ValidateDirFcn”——一个处理函数作为输入结构的形式返回的DIR函数并返回一个逻辑值。这个函数只会发现适用于所有子目录和子目录,一个真正的返回值将被认为是有效的(即包含在自己或自己的文件列表包含在列表)。默认是[](即所有子目录是有效的)。“RecurseInvalid”参数的设置决定了如果无效的子目录还递归下降。
“RecurseInvalid”——一个逻辑值确定无效的子目录(如“DirFilter”和“ValidateDirFcn”确定的参数)仍应递归下降。默认是假的(我。e递归搜索停止无效的子目录)。
如何使用这些选项的例子可以发现在getAllFiles_demo演示脚本。米或在getAllFiles_demo.html出版形式。
引用作为
肯尼斯·伊顿(2023)。dirPlus(//www.tatmou.com/matlabcentral/fileexchange/60716-dirplus), MATLAB中央文件交换。检索。
html /
版本 | 发表 | 发布说明 | |
---|---|---|---|
2.0.0.0之间 | 改变名字从getAllFiles dirPlus,添加“ReturnDirs”选项来收集子目录列表,添加“DirFilter”和“ValidateDirFcn”选项来选择有效的目录,并添加“RecurseInvalid”选项来修改递归的行为。 |
||
1.4.0.0 | 添加了一个新的“结构”选项作为输出返回一个结构数组的文件信息,而不只是一个细胞阵列的文件名和路径。 |
||
1.3.0.0 | 更新的帮助和演示。 |
||
1.2.0.0 | 添加“深度”选项。 |
||
1.1.0.0 | 修改的数据传递到验证功能。它现在应该接受作为输入DIR函数返回的结构形式,而不只是一个文件名。 |
||
1.0.0.0 | 糟糕的描述格式。 |