matlab读入子文件夹中的文件,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

文件夹中含有子文件夹,修改子文件夹中的图像存储格式(python实现)

文件夹中含有子文件夹,修改子文件夹中的图像存储格式,把png图像改为jpg图像,python代码如下: import os import cv2 filePath = 'C:\\Users\\admi ...

Android 读取手机某个文件夹目录及子文件夹中所有的txt文件

1. activity_main.xml文件

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++读取文件夹及子文件夹数据

这里有两种情况:读取文件夹下所有嵌套的子文件夹里的所有文件  和 读取文件夹下的指定子文件夹(或所有子文件夹里指定的文件名)

shell 批量压缩指定文件夹及子文件夹内图片

shell 批量压缩指定文件夹及子文件夹内图片 用户上传的图片,一般都没有经过压缩,造成空间浪费.因此须要编写一个程序,查找文件夹及子文件夹的图片文件(jpg,gif,png),将大于某值的图片进行压 ...

随机推荐

Java 类反射机制分析

Java 类反射机制分析 一.反射的概念及在Java中的类反射 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.在计算机科学领域,反射是一类应用,它们能够自描述和自控制.这类应用通过某 ...

Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...

新版Microsoft Azure Web管理控制台 - Microsoft Azure New Portal - (2)

前文我们提到在Resource Manager模式中,虚拟机默认不再与云服务对应,也不再有类似xxx.cloudapp.net的二级域名.在Resource Manager模式中,虚拟机的网卡.公共I ...

iOS 目录的使用

Table 1-1  Commonly used directories of an iOS app  Directory Description AppName.app This is the ap ...

网易及新浪IP查询接口

通过IP地址获取对应的地区信息通常有两种方法:1)自己写程序,解析IP对应的地区信息,需要数据库.2)根据第三方提供的API查询获取地区信息. 第一种方法,参见文本

不能用100%ie6不兼容

rom Users";   ...

你可能感兴趣的:(matlab读入子文件夹中的文件,Matlab学习:读取指定文件夹及其五级子文件夹内的文件...)