【Matlab 查找当前路径下文件】
代码如下:
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’)。
