Matlab学习:读取指定文件夹及其五级子文件夹内的文件
OpenCV2.4.X版本提供了三个函数来读取指定目录内的文件,它们分别是:
(1)GetListFiles:读取指定目录内所有文件,不包含子目录;
(2)GetListFilesR:读取指定目录及其子目录(仅一级子目录)内所有文件;
(3)GetListFolders:读取指定目录内所有目录,不包含文件;
然而,Matlab中并没有对应的函数,有人可能会说dir不就可以吗,但dir返回的值还进行一些处理我们才能用的,如移除返值中包含的父目录及当前目录。这里我就写了一段代码来读取指定目录及其子目录(递归五级子目录)内所有文件,相当于GetListFilesR,但递归子目录层次更深。具体代码如下:
function files = GetListFilesR(top1dir, ext) %1.指定输出参数类型 files = cell(0); %2.获取所有文件 cn = 1; top1 = dir(top1dir); len1 = length(top1); for a = 1:len1 %1.1是本目录或父目录 if strcmp(top1(a).name, '.') || strcmp(top1(a).name, '..') continue; end %1.2不是目录 if top1(a).isdir == 0 files{cn} = strcat(top1dir, '/', top1(a).name); cn = cn + 1; continue; end %1.3是目录 top2dir = strcat(top1dir, '/', top1(a).name); top2 = dir(top2dir); len2 = length(top2); for b = 1:len2 %2.1是本目录或父目录 if strcmp(top2(b).name, '.') || strcmp(top2(b).name, '..') continue; end %2.2不是目录 if top2(b).isdir == 0 files{cn} = strcat(top2dir, '/', top2(b).name); cn = cn + 1; continue; end %2.3是目录 top3dir = strcat(top2dir, '/', top2(b).name); top3 = dir(top3dir); len3 = length(top3); for c = 1:len3 %3.1是本目录或父目录 if strcmp(top3(c).name, '.') || strcmp(top3(c).name, '..') continue; end %3.2不是目录 if top3(c).isdir == 0 files{cn} = strcat(top3dir, '/', top3(c).name); cn = cn + 1; continue; end %3.3是目录 top4dir = strcat(top3dir, '/', top3(c).name); top4 = dir(top4dir); len4 = length(top4); for d = 1:len4 %4.1是本目录或父目录 if strcmp(top4(d).name, '.') || strcmp(top4(d).name, '..') continue; end %4.2不是目录 if top4(d).isdir == 0 files{cn} = strcat(top4dir, '/', top4(d).name); cn = cn + 1; continue; end %4.3是目录 top5dir = strcat(top4dir, '/', top4(d).name); top5 = dir(top5dir); len5 = length(top5); for e = 1:len5 %5.1是本目录或父目录 if strcmp(top5(e).name, '.') || strcmp(top5(e).name, '..') continue; end %5.2不是目录 if top5(e).isdir == 0 files{cn} = strcat(top5dir, '/', top5(e).name); cn = cn + 1; end end%5级 end%4级 end%3级 end%2级 end%1级 if strcmp(ext, 'none') == 1 return; end %3.获取指定后缀名文件 tmp = files; len = length(tmp); files = cell(0); k = 1; for i = 1:len %获取文件名 filelen = length(tmp{i}); indexs = strfind(tmp{i}, '.'); lastIndex = indexs(end); fileext = tmp{i}(lastIndex+1:filelen); %判断是否为指定类型文件 if strcmp(fileext, ext) == 1 files{k} = tmp{i}; k = k + 1; end end end
Matlab学习:读取指定文件夹及其五级子文件夹内的文件的更多相关文章
- 文件夹中含有子文件夹,修改子文件夹中的图像存储格式(python实现)
文件夹中含有子文件夹,修改子文件夹中的图像存储格式,把png图像改为jpg图像,python代码如下: import os import cv2 filePath = 'C:\\Users\\admi ...
- JAVA中删除文件夹下及其子文件夹下的某类文件
##定时删除拜访图片 ##cron表达式 秒 分 时 天 月 ? ##每月1日整点执行 CRON1=0 0 0 1 * ? scheduled.enable1=false ##图片路径 filePat ...
- Android 读取手机某个文件夹目录及子文件夹中所有的txt文件
1. activity_main.xml文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andro ...
- Python扫描指定文件夹下(包含子文件夹)的文件
扫描指定文件夹下的文件.或者匹配指定后缀和前缀的函数. 假设要扫描指定文件夹下的文件,包含子文件夹,调用scan_files("/export/home/test/") 假设要扫描 ...
- Android中读取assets文件夹中的子文件夹内容
文件结构如下:assets/info/info AssetManager am = this.getResources().getAssets(); InputStream input = null; ...
- NSIS如何对一整个目录文件夹(包括子文件夹和其中的文件)压缩
原来不加/r参数,NSIS编译器就会不认识文件夹啊. File /r [dir] Reference: http://stackoverflow.com/questions/7973242/nsis- ...
- asp.net 遍历文件夹下全部子文件夹并绑定到gridview上
遍历文件夹下所有子文件夹,并且遍历配置文件某一节点中所有key,value并且绑定到GridView上 Helper app_Helper = new Helper(); DataSet ds = n ...
- MATLAB检查指定路径中的子文件夹中的文件名中是否带有空格
测试文件夹为: clear;close all;clc; %% %程序实现的功能 %检查指定路径中的子文件夹中的文件名中是否带有空格,并去掉文件名中的空格 %% %程序中用到的之前不清楚的函数如下 % ...
- c++读取文件夹及子文件夹数据
这里有两种情况:读取文件夹下所有嵌套的子文件夹里的所有文件 和 读取文件夹下的指定子文件夹(或所有子文件夹里指定的文件名) <ps,里面和file文件有关的结构体类型和方法在 <io.h ...
随机推荐
- OpenJudge计算概论-Tomorrow never knows【输入日期计算下一天的日期】
/*====================================================================== Tomorrow never knows? 总时间限制 ...
- Intent的FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT
Activity的两种启动模式:FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT 1. 如果已经启动了四个Activity:A,B,C和D. ...
- ExtJs学习笔记之ComboBox组件
ComboBox组件 (1)ComboBox控件支持自动完成.远程加载.和许多其他特性. (2)ComboBox就像是传统的HTML文本 <input> 域和 <select> ...
- Hadoop2.4代码的坑
org.apache.hadoop.hdfs.server.datanode.BlockPoolManager 和org.apache.hadoop.hdfs.server.datanode.Data ...
- [mysql] mysql 5.6.X 慢查询日志
慢查询日志 一篇好文章,学习保存.... 打开慢查询日志 慢查询日志,顾名思义就是记录执行比较慢查询的日志. 查看是否开启慢查询日志: show variables like '%slow%'; 打开 ...
- bzoj2467: [中山市选2010]生成树
Description 有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成的圈.在中心的这个n边圈的每一条边同时也是某一个五角形的一条边,一共有n个不同的五角形.这些五角形只在五角 ...
- RPM Fusion on CentOS7
RPM Fusion RPM Fusion provides software that the Fedora Project or Red Hat doesn't want to ship. Tha ...
- shell和vim的配色
shell的默认配色 mac,需要用iTerm2, 选自带的solarized即可 debian ,选择自带的 solarized dark vim配色 git clone git://github. ...
- Win7系统安装Centos7.0双系统(二)
4.6语言选择
- 206. Reverse Linked List
反转链表 注意是借用 假的头节点,这样算法判断开始和结束,就好很多了. 借用头插法. []dummy/head [] [] [] [] head curr ==== class Solution ...