matlab遍历文件夹下指定类型的文件以及子文件夹
来源:互联网 发布:希拉里 放过, 知乎 编辑:程序博客网 时间:2024/05/29 08:40
文件结构
最近需要将文件夹下所有图像文件的文件名导出,只知道matlab的dir函数能够获取到目录下的文件以及文件夹名称,却不能递归的遍历所有子文件夹,因此自己matlab编写了一个函数,实现自己的需求代码实现
function name = foreachDir(mainPath) % 遍历文件夹及文件 % mainPath 主路径 % name 满足条件的文件名 % 当前目录下的文件 files = dir(mainPath); % 文件数量 len = length(files); name = {}; index = 1; for ii = 1 : len % 跳过.以及..文件夹 if (strcmp(files(ii).name, '.') == 1) ... || (strcmp(files(ii).name, '..') == 1) continue; end % 递归调用函数,遍历当前目录下的文件夹(深度过深,可能会报错) if files(ii).isdir == 1 tmpName = foreachDir(fullfile(mainPath, '\', files(ii).name)); for kk = 1 : length(tmpName) name{index} = tmpName(kk); index = index + 1; end end % 读取指定类型的文件(可根据自己需要修改) if ~isempty(strfind(files(ii).name, '.jpg')) ... || ~isempty(strfind(files(ii).name, '.png')) ... || ~isempty(strfind(files(ii).name, '.bmp')) name{index} = fullfile(mainPath, '\', files(ii).name); index = index + 1; end endend
- matlab函数
- strfind函数
strfind(str,patten) ,查找str中是否有pattern,返回出现位置,没有出现返回空数组 。 - fullfile函数
fullfile(‘dir1’, ‘dir2’, …, ‘filename’),利用文件各部分信息创建并合成完整文件名。 - 调用
name = foreachDir(‘yourselfPath’);
- strfind函数
- 遗留问题
在实现过程中为了遍历子文件夹,使用了递归实现,因此效率上有点低下;同时,递归实现在文件夹嵌套比较深的情况下,可能会报出错误(Java下会提示棧错误)。
更重要的是,在文件过滤处,自己知识根据自己需要指定了文件后缀,并没有详细考虑文件类型。
阅读全文
0 0
- matlab遍历文件夹下指定类型的文件以及子文件夹
- 遍历读取指定文件夹下指定类型的所有文件
- 遍历读取指定文件夹下指定类型的所有文件
- matlab遍历指定路径下的文件夹
- matlab读取文件夹下指定类型的文件
- Android 遍历删除SD卡中某一文件夹下的指定子文件夹及其子文件
- 遍历指定文件夹下的子文件夹和其所有子文件
- C++ 遍历文件夹以及子文件夹下所有文件
- 利用递归遍历文件夹下所有文件以及子文件夹
- windows中遍历指定文件夹下的所有子文件夹
- windows中遍历指定文件夹下的所有子文件夹
- windows中遍历指定文件夹下的所有子文件夹
- 非递归遍历指定文件夹下的所有文件及其子文件夹
- Java读取文件夹下的指定类型的文件 递归筛选 包含子文件夹
- Java读取文件夹下的指定类型的文件(包含子文件夹)
- 获取某某文件夹(包括子文件夹)下所有指定类型的文件
- matlab遍历文件夹下的所有文件
- 使用MATLAB遍历指定的子文件夹及其下文件
- 共享内存
- node.js爬虫之下载图片,批量下载图片,控制下载图片并行上限
- lua 字符串删除特定字符且以特定字符转存表形式
- J
- 学习protege4.3-OWL API进行编程(一)
- matlab遍历文件夹下指定类型的文件以及子文件夹
- java 泛型详解
- 1.6 离散系统的复频域分析
- 寻找三角形
- 光学设计CAD:基于ZEMAX的望远物镜优化设计
- cmake编译Debug和Release版本的注意点
- NoSQL 数据库索引 总结
- linux用户与用户组管理
- 索引器概述