Matlab 如何查找当前路径下文件夹

点击new ->function,创建函数文件:

function [ VecFolders ] = FindFolders( InputDir,IsReturnNameOnly )
%查找当前路径下所有文件夹
%查找当前路径下所有文件夹
%InputDir: 输入路径
%IsReturnNameOnly:是否只返回文件夹名,1:全路径名,0:只返回文件夹名
%VecFolders:输出文件夹列表

%check当前路径是否合法
if ~isdir(InputDir)
    msgbox('The input isnot a valid directory','Warning','warn');
    return 
else
    if nargin == 1
        IsReturnNameOnly = 1;
    elseif nargin>2||nargin<1
        msgbox('1 or 2 inputs are required','Warning','warn');
        return
    end
    if nargout>1
        msgbox('Too many output arguments','Warning','warn');
        return
    end
end
    %初始化文件夹列表
    folders = {};
    %查找当前路径下所有文件
    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 files(i).isdir     %判断是否为文件夹    
                num = num + 1;
                if IsReturnNameOnly    %返回文件夹列表
                    folders{num} = tmp;
                else                   %返回文件夹全路径列表
                    tmp = fullfile(InputDir,tmp);
                    folders{num} = tmp;
                end
            end
        end
    end
    %赋值到返回变量VecFolders
    if nargout==1
        VecFolders = folders';
    end
end

 

示例调用:

clc;
clear;
path = 'E:\';
a = FindFolders(path,0);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值