学习了LINUX下用C语言遍历文件夹,一些心得
2013-09-11 19:55
309 查看
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;
}
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;
}
相关文章推荐
- 学习了LINUX下用C语言遍历文件夹,一些心得
- 学习了LINUX下用C语言遍历文件夹,一些心得 分类: arm-linux-Ubuntu 2013-09-11 14:09 885人阅读 评论(1) 收藏
- 学习了LINUX下用C语言遍历文件夹,一些心得
- 学习了LINUX下用C语言遍历文件夹,一些心得
- 学习了LINUX下用C语言遍历文件夹,一些心得
- 关于近来学习linux的一些心得
- 学习c语言遇到的一些问题(5)(Linux)(运算符的优先级)
- 学习c语言遇到的一些问题(3)(Linux)(getchar()和gets()重点:scanf产生的回车符问题)
- 开始学习linux运维,这 4000 里记录一些自己的学习心得
- Linux系统遍历文件夹 获取文件大小的操作(C语言实现)
- linux下 c语言递归遍历文件夹下所有文件和子文件夹(附上替换文本文件内容的方法)
- 经过大二一个学期的c语言学习,我从中总结了一些c语言的优缺点心得~分享给大家。
- 学习c语言遇到的一些问题(2)(Linux)(makefile)
- 关于C语言学习单片机的一些心得
- C语言在linux下递归遍历文件夹中的文件
- 学习c语言遇到的一些问题(1)(Linux)(调用库函数)
- 学习c语言遇到的一些问题(4)(Linux)(不确定大小的数组)
- 关于学习linux的一些心得体会
- linux下遍历文件夹中的文件
- C语言再学习 -- 修改linux文件权限