#include<dirent.h>
#include<sys/stat.h>
#include<stdio.h>
void check_dir(char* dirname)
{
DIR* p;
struct dirent* dirlist;
struct stat filestat;
char indir[1024];
p=opendir(dirname);
while((dirlist=readdir(p))!=NULL)
{
sprintf(indir,"%s/%s",dirname,dirlist->d_name);
stat(indir,&filestat);
if(S_ISREG(filestat.st_mode))
{
printf("%s/n",indir);
}
else
{
if(S_ISDIR(filestat.st_mode)&&dirlist->d_name[0]!='.')
{
//check_dir(indir); //调用递归的话就会把子目录的文件也返回。可以使用continue跳过子目录
continue;
}
}
}
}
int main()
{
check_dir("./");
return 0;
}
本文提供了一个使用C语言实现的目录遍历示例,通过该程序可以列出指定目录下的所有普通文件路径。该程序利用了dirent.h库中的opendir和readdir函数来读取目录,并使用sys/stat.h库中的stat函数来获取文件状态信息,从而判断文件类型。
1088

被折叠的 条评论
为什么被折叠?



