528
技術社區[雲棲]
學習了LINUX下用C語言遍曆文件夾,一些心得
struct dirent中的幾個成員:
d_type:4表示為目錄,8表示為文件
d_reclen:16表示子目錄或文件,24表示非子目錄
d_name:目錄或文件的名稱
具體代碼如下,僅供參考
#include
#include
#include
void List(char *path)
{
struct dirent* ent = NULL;
DIR *pDir;
pDir=opendir(path);
if(pDir==NULL) printf("open dir faild\n");
else printf("open dir ok %s\n",path);
while (NULL != (ent=readdir(pDir)))
{
// printf("ent->d_reclen:%d\n",ent->d_reclen);
// printf("ent->d_type:%d\n",ent->d_type);
if (ent->d_reclen==24)
{
if (ent->d_type==8)
printf("%s\n", ent->d_name);
else
{
printf("子目錄:%s\n",ent->d_name);
List(ent->d_name);
printf("返回%s\n",ent->d_name);
}
}
}
}
int main(int argc, char *argv[])
{
List(argv[1]);
return 0;
}
最後更新:2017-04-03 15:21:43