#include <stdio.h> if(S_ISDIR(buf.st_mode)) }
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <stdlib.h>
#include <sys/types.h>
int lsdir(char *filepath , int ntap)
{
struct stat buf ;
struct dirent *direntp;
DIR *dir;
char path[100];
int i;
if((dir = opendir(filepath))==NULL)
{
printf("opendir error!/n");
exit (0);
}
char tb[100];
memset(tb,'/0',100);
for(i=0;i<ntap;i++)
{
tb[i]='/t';
}
while((direntp = readdir(dir)) != NULL)
{
if(strcmp( ".",direntp->d_name) == 0 || strcmp( "..",direntp->d_name) == 0)
{
continue;
}
strcpy(path,filepath);
strcat(path,"/");
strcat(path,direntp->d_name);
//printf("path=%s/n",path);
stat(path,&buf);//获取文件属性
//printf("aaaaaa/n");
//filepath = strcat(filepath,direntp->d_name); //获取新的文件路径
//printf("%s/n",direntp->d_name);
{
//排除当前目录和上级目录
//如果是子目录,递归调用函数本身,实现子目录中文件遍历
printf( "%s%s//n", tb, direntp->d_name);
//递归调用,遍历子目录中文件
lsdir( path, ntap+1);
}
else
{
printf( "%s%s/n", tb, direntp->d_name);
}
}
closedir(dir);
return 1;
}
int main(int argc,char *argv[])
{
lsdir(argv[1],0);
return 1;
自己写的一个LINUX 下目录文件遍历程序
最新推荐文章于 2021-03-09 23:02:23 发布