|

楼主 |
发表于 2003-11-18 23:29:44
|
显示全部楼层
再贴一次!!!
- #include <unistd.h>
- #include <stdio.h>
- #include <dirent.h>
- #include <string.h>
- #include <sys/stat.h>
- #include <stdlib.h>
- void printdir(char *dir,int depth);
- int main(void)
- {
- printf("Directory scan of /home/cai:\n");
- printdir("/home/cai",0);
- printf("done.\n");
- return 0;
- }
- void printdir(char *dir,int depth)
- {
- DIR *dp;
- struct dirent *entry;
- struct stat statbuf;
-
- if((dp=opendir(dir)) == NULL) {
- fprintf(stderr,"cannot open directory:%s\n",dir);
- return;
- }
- chdir(dir);
- while((entry=readdir(dp)) != NULL) {
- lstat(entry->d_name,&statbuf);
- if(S_ISDIR(statbuf.st_mode)) { [color=red]/*S_ISDIR这个函数有什么功能*/[/color]
- if(strcmp(".",entry->d_name) == 0 ||
- strcmp("..",entry->d_name) == 0)
- continue;
- printf("%*s%s/\n",depth," ",entry->d_name);
- printdir(entry->d_name,depth+4);
- }
- else
- printf("%*s%s\n",depth," ",entry->d_name);
- }
- chdir("..");
- closedir(dp);
- }
复制代码 |
|