linux 文件 IO 目录操作及文件属性
练习:实现列出某个目录中所有文件属性(文件大小,文件最后修改时间,文件名)目录名由参数传入 ./dir /home/linux
1 #include <sys/stat.h> 2 #include <dirent.h> 3 #include <stdio.h> 4 int main(int argc, char *argv[]) 5 { 6 DIR *dp; //定义一个结构体变量 打开文件目录,返回的就是指向DIR结构体的指针 7 dp = opendir(argv[1]); 8 struct dirent *ep; //用来保存一个文件 这种文件包含了其他文件的名字以及指向与这些文件有关的信息的指针 9 ep = readdir(dp); //readdir ,从目录中读出一个文件 10 11 while( ep != NULL) 12 { 13 if(ep->d_name[0] != '.') 14 { 15 char path[100] = { 0 }; 16 struct stat s; 17 sprintf(path, "%s/%s", argv[1], ep->d_name); // /home/linux/a.txt 18 int ret = stat(path, &s); 19 if(ret >= 0) 20 { 21 printf("%s:%d:%s\n", ep->d_name,(int)s.st_size,asctime(localtime(&s.st_atime))); 22 } 23 } 24 ep = readdir(dp); 25 } 26 }