该函数可获取目录及子目录下相同后缀的所有文件,返回的是一个cell
入参:root_path是根目录字串,ext是后缀字串,两个可选参数,current_only是true则仅返回当前目录下的文件,否则返回包含子目录中的所有文件,默认false,basename_only是true则返回无父母录名称的文件名,否则返回文件全名,默认false
function filenames = get_filenames(root_path,ext,varargin)
filenames = {};
p = inputParser;
addParameter(p,'current_only',false);
addParameter(p,'basename_only',false);
parse(p,varargin{:});
folders = {};
if ~p.Results.current_only
folder_str = genpath(root_path);
folders = strsplit(folder_str,';');
else
folders = {root_path};
end
for folder = folders
files = dir(fullfile(folder{1}, ['*.', ext]));
for i = 1:length(files)
file = files(i);
if p.Results.basename_only
filename = file.name;
else
filename = fullfile(file.folder,file.name);
end
filenames{end+1} = filename;
end
end
end