代码如下:
function [name,path]=FindFiles(InputDir)
%查找当前路径下所有文件
%InputDir: 输入路径
%name:输出文件名,cell,路径不合法或者入参数过多,输出name是空元胞数组
%path:文件完整路径,cell,路径不合法或者入参数过多,输出path是空元胞数组
%check当前路径是否合法
if ~isdir(InputDir)
msgbox('The input isnot a valid directory','Warning','warn');
name = {};
path = {};
return
else
if nargin>1
msgbox('Too many input arguments','Warning','warn');
name = {};
path = {};
return
end
end
%初始化文件列表
name = {};
path = {};
%查找当前路径下所有文件
files = dir(InputDir);
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 isfile(tmp) %判断是否为文件
num = num + 1;
%返回文件夹列表
name{num} = tmp;
%返回文件夹全路径列表
tmp = fullfile(InputDir,tmp);
path{num} = tmp;
end
end
end
end
用法举例
假如C盘有个路径:C:\Project
如果想获取文件名和全路径,[name,path]=FindFiles(‘C:\Project’);
如果只想获取文件名,[name,~]=FindFiles(‘C:\Project’);
如果只想获取文件路径,[~,path]=FindFiles(‘C:\Project’)。