#include <unistd.h>
#include <dirent.h>
#include <string.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <stdio.h>
void printdir(char* dir, int depth){
DIR *dp;
struct dirent *dir_entry;
struct stat stat_buf;
if((dp=opendir(dir))==NULL){
fprintf(stderr, "cannot open directory: %s", dir);
return;
}
chdir(dir);
while((dir_entry = readdir(dp)) != NULL){
lstat(dir_entry->d_name, &stat_buf);
if(S_ISDIR(stat_buf.st_mode)){
//
if(strcmp(dir_entry->d_name, ".") == 0|| strcmp(dir_entry->d_name, "..") == 0)
continue;
printf("%*s%s/\n", depth, "", dir_entry->d_name);
printdir(dir_entry->d_name, 4);
}else{
printf("%*s%s/\n", depth, "", dir_entry->d_name);
}
}//while
chdir("..");
closedir(dp);
}
int main(int argc, char* argv[]){
printf("==>Directory scan of /home/workspace:\n");
printdir("/home/workspace", 0);
printf("==>Done.\n");
exit(0);
}
访问文件目录dir
最新推荐文章于 2022-11-03 14:54:33 发布