Linux使用C读取文件目录

来源:互联网 发布:局域网控制电脑软件 编辑:程序博客网 时间:2024/06/05 20:06


简单介绍读取存放信息的结构体:



struct dirent     {         long d_ino;/* inode number 索引节点号 */         off_t d_off; /* offset to this dirent 在目录文件中的偏移 */         unsignedshort d_reclen;/* length of this d_name 文件名长 */         unsignedchar d_type;/* the type of d_name 文件类型 */         char d_name [NAME_MAX+1]; /* file name (null-terminated) 文件名,最长255字符 */    }



晒出一个示例如下:


#include <stdio.h> #include <dirent.h>#include <stdlib.h>int main(int argc,char *argv[]) {   DIR *dirptr = NULL;   struct dirent *entry;  if(argv[1]==NULL)  {  printf("please input dir you want to read\n");  exit(-1);  }  if((dirptr = opendir(argv[1])) == NULL)   {     printf("open dir !");     return 1;   }   else   { do    {   entry = readdir(dirptr) ;  if(entry!=NULL)  {  printf("%s\n", entry->d_name);  }    }while (entry);    closedir(dirptr);   }  return 0; }

对其中的说明:


    在Linux下编译此c文件,运行时给出你想要读取目录中文件的目录位置。

   dirptr就保存了这些信息,之后,dirptr一次偏移将读取到的目录中的各个文件一次打印出。








原创粉丝点击