点击new ->function,创建函数文件:
function [ VecFiles ] = FindFiles( InputDir,ext,IsReturnNameOnly )
%查找当前路径下所有文件夹
%InputDir: 输入路径
%ext:查找文件名字符段
%IsReturnNameOnly:是否只返回文件名
%check当前路径是否合法
if ~isdir(InputDir)
msgbox('The input isnot a valid directory','Warning','warn');
return
else
if nargin == 1
ext = '*';
IsReturnNameOnly = 1;
elseif nargin == 2
IsReturnNameOnly = 1;
elseif nargin>3||nargin<1
msgbox('1 or 2 inputs are required','Warning','warn');
return
end
if nargout>1
msgbox('Too many output arguments','Warning','warn');
return
end
end
%初始化文件列表
filesname = {};
%查找当前路径下所有含有ext字段文件
strtmp = strcat(InputDir,'\*',ext);
files = dir(strtmp);
m = length(files);
%check是否为文件,如是则存入vector
num = 0;
for i =1:1:m
%排除.和..
if ~(strcmp(files(i).name,'.')||strcmp(files(i).name,'..'))
tmp = files(i).name;
if ~files(i).isdir
num = num + 1;
if IsReturnNameOnly %返回文件夹列表
filesname{num} = tmp;
else %返回文件夹全路径列表
tmp = fullfile(InputDir,tmp);
filesname{num} = tmp;
end
end
end
end
%赋值到返回变量VecFolders
if nargout==1
VecFiles = filesname';
end
end
示例调用:
clc;
clear;
path = 'E:\CCS6.2';
a = FindFiles(path,'.txt',0);