matlab遍历指定路径下的文件夹

matlab采用队列递归遍历指定路径下的文件夹。

folder_name0 =  'C:\Users\ly\Desktop\a';
fileFoldertemp(1).fn = folder_name0 ;
head = 1;
tail = 1;
l = 1;
m = 1;
while 1
    fileFolder = getcurrentfolder(fileFoldertemp(tail).fn );

   for rc = 1:length(fileFolder) 
        fileFoldert = strcat(fileFoldertemp(tail).fn,'\',fileFolder{rc});
        head = head + 1; % head 多一个位置
        fileFoldertemp(head).fn  =  fileFoldert;      
   end



 if length(fileFolder) == 0
     fileFolderRealLast{l} = fileFoldertemp(tail).fn;
     l= l + 1;          
 end
      fileFolderRealAll{m} = fileFoldertemp(tail).fn;
     m= m + 1;    

     tail = tail + 1;% tail 指向下一个位置
      %整体 后移一个位置
    for i = 1: length(fileFoldertemp)-1
                  fileFoldertemp(i) = fileFoldertemp(i+1);
    end

      tail = tail - 1;
      head = head - 1;

      if  head == 0
          break;
      end

end

% 其中,
% fileFolderRealAll 为所有文件路径
% fileFolderRealLast 为最后一级文件夹路径





%其中 getcurrentfolder 函数定义如下(参考了百度知道):

function [fileFolder] = getcurrentfolder(folder_name0)
FileList=dir(folder_name0);
    ff=1;
    num=1;
    fileFolder={};
    %该路径下是否是文件夹
    for rr=1:length(FileList)
        if(FileList(rr).isdir==1&&~strcmp(FileList(rr).name,'.')&&~strcmp(FileList(rr).name,'..'))
            fileFolder{ff}=[FileList(rr).name];%存储字库文件夹名
            ff=ff+1;
        end
    end

下图为遍历结果:
这里写图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值