【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’)。

经验分享 程序员 微信小程序 职场和发展