linux下遍历某个目录的文件,或者文件夹。遍历、递归

#include<dirent.h>

#include<sys/stat.h>

#include<stdio.h>

void   check_dir(char*   dirname)  
  {  
      DIR*   p;  
      struct   dirent*   dirlist;  
      struct   stat   filestat;  
      char   indir[1024];  
       
      p=opendir(dirname);  
      while((dirlist=readdir(p))!=NULL)    
      {  
          sprintf(indir,"%s/%s",dirname,dirlist->d_name);  
          stat(indir,&filestat);  
          if(S_ISREG(filestat.st_mode))    
          {  
              printf("%s/n",indir);  
          }  
          else    
          {  
              if(S_ISDIR(filestat.st_mode)&&dirlist->d_name[0]!='.')    
              {  
                     //check_dir(indir);   //调用递归的话就会把子目录的文件也返回。可以使用continue跳过子目录

                     continue;
              }  
          }  
      }  
  }

 

int main()

{

     check_dir("./");

     return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值