您的位置:首页 > 其它

访问文件目录dir

2015-12-31 10:11 225 查看
#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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: