[Linux C]递归遍历指定目录,以目录树形式展示
生活随笔
收集整理的這篇文章主要介紹了
[Linux C]递归遍历指定目录,以目录树形式展示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*功能:演示了利用C語言遞歸遍歷指定目錄下的子目錄(不含隱藏目錄)和文件,并以目錄樹形式展示!其中編譯命令為:gcc -o travel travel.c -std=c99
*/
#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
#include <string.h>void List(char *path, int level)
{struct dirent *ent = NULL;DIR *pDir;if((pDir = opendir(path)) != NULL){while(NULL != (ent = readdir(pDir))){if(ent->d_type == 8) // d_type:8-文件,4-目錄{for(int i = 0; i < level; i++)printf("--");printf("%s\n", ent->d_name);}else if(ent->d_name[0] != '.'){for(int i = 0; i < level; i++)printf("+ ");char *p = malloc(strlen(path) + strlen(ent->d_name) + 2);strcpy(p, path);strcat(p, "/");strcat(p, ent->d_name);printf("%s\n", ent->d_name);List(p, level+1); // 遞歸遍歷子目錄free(p);}}closedir(pDir);}
}int main()
{ char path[] = "/home/zcm/program/eclipse";List(path, 0);return 0;
}
總結
以上是生活随笔為你收集整理的[Linux C]递归遍历指定目录,以目录树形式展示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法学习之循环结构程序设计
- 下一篇: 将windows下编辑好的文件(GBK)