遍历一个文件夹下所有文件,并打印文件大小和日期

使用readdir函数遍历

使用stat函数获得文件属性

  1.头文件

  #include <stdio.h>
  #include <dirent.h>
  #include <sys/types.h>
  #include <sys/stat.h>
  #include <unistd.h>
  #include <time.h>  

2.主函数

  int main(int argc, const char *argv[])
  {
      DIR *dp;
      struct dirent *dt;
      struct stat buf;
      int ret;
      struct tm *t;

  //以绝对寻址方式打开目录***
      dp = opendir("/home/linux/wj_io");                        
      if (dp == NULL){
          perror("opendir");
          return 0;
      }

  //遍历文件夹***
      while((dt = readdir(dp)) != NULL){
          printf("%s\n",dt->d_name);

  //去除遍历时的'.'和'..'
          if(*(dt->d_name) != '.'){
 //读取文件的属性
              ret = stat(dt->d_name,&buf);
              if(ret < 0){                                      
                  perror("stat");
                  return 0;
              }
  //打印文件大小
              printf("   文件大小:%7d  ",(int)buf.st_size);
  //打印文件时间
              t = localtime(&buf.st_ctime);
              printf("  时间:%d-%d-%d %d:%d\n",t->tm_year+1900,
                      t->tm_mon+1,t->tm_mday,t->tm_hour,
                      t->tm_min);
 
  
          }else{
              puts("");在'.'和'..'后加一空行
          }
     }
     return 0;
  }

本文遍历的目录

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值