论坛首页 编程语言技术论坛

unix环境下标准C实现的遍历某个文件夹下面所有文件

浏览 2743 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2007-08-23  
C
unix环境下标准C实现的遍历某个文件夹下面所有文件(转自CSDN
 
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <dirent.h>
int testdir(char *path)
{
struct stat buf;
if(lstat(path,&buf)<0)
{
return 0;
}
if(S_ISDIR(buf.st_mode))
{
return 1; //directory
}
return 0;
}


int directory(char *path)
{
DIR *db;
char filename[128];
struct dirent *p;
db=opendir(path);
if(db==NULL)return 0;
memset(filename,0,128);
while ((p=readdir(db)))
{
if((strcmp(p->d_name,".")==0)||(strcmp(p->d_name,"..")==0))
continue;
else
{
sprintf(filename,"%s/%s",path,p->d_name); 
if(testdir(filename))
{
directory(filename);
}
else {
printf("%s\n",filename);
}
}
memset(filename,0,64);
}
closedir(db);
return 0;
}
int main(int argc,char **argv)
{
char *path="./"; //要遍历的目录
if(access(path,F_OK)==0&&testdir(path))
{
printf("is directory\n");
directory(path);
}
else printf("%s not exist\n",path);

}
 

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics