1. 查找文件夹下具有指定文件名的所有路径
会遍历所有的文件夹及子文件夹
matlab
function filePath = getAllFilePath(fileDir,filename)
subDirs = dir(fileDir); % 列出当前文件夹中的文件和文件夹
filePath = [];
for i = 1:length(subDirs)
% 判断是否为文件夹,如果是则递归;如果否,则查找文件
if subDirs(i).isdir && subDirs(i).name ~= "." && subDirs(i).name ~= ".."
recursionDir = [subDirs(i).folder, '\', subDirs(i).name];
filePath = [filePath; string(getAllFilePath(recursionDir,filename) )];
elseif subDirs(i).name ~= "." && subDirs(i).name ~= ".."
if length(subDirs(i).name)>=length(filename)
if subDirs(i).name(end-length(filename)+1:end) == filename
filePath1 = [subDirs(i).folder, '\', subDirs(i).name];
filePath = [filePath; string(filePath1)];
end
end
end
end
filePath = unique(filePath);
end
2. 获取文件夹下所有指定后缀的文件
matlab
function filepath = getFilesPath(baseDir, ext, findSubfile)
% findSubfile == true: 搜索子文件夹(默认)
% findSubfile == false: 不搜索子文件夹
if nargin == 2 % 判断输入的参数是否为2
findSubfile = true;
end
if findSubfile
dirOutput = dir([baseDir '/**/*.' ext]);
else
dirOutput = dir([baseDir '/*.' ext]);
end
folder = string({dirOutput.folder}');
file = string({dirOutput.name}');
filepath = strcat(folder, '\', file);
end