C实现搜索指定目录下的所有文件及其子目录下的文件

本文介绍了一个用于遍历指定目录及其子目录下所有文件的C语言程序实现。该程序通过递归方式深入子目录,并筛选输出特定类型的文件名,如mp4文件。文中详细展示了如何使用opendir、readdir等函数进行目录操作,并通过stat函数获取文件状态信息来判断是否为目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*******************************************************************************
*@ Description    :搜索指定目录下的所有文件及其子目录下的文件
*@ Input          :
*@ Output         :
*@ Return         :
*@ attention      :
*******************************************************************************/
void getFileName(char *dirPath)
{
	DIR *dir=opendir(dirPath);
	if(dir==NULL)
	{
		ERROR_LOG("opendir failed!\n");
		return;
	}
	
	chdir(dirPath); 		//进入到当前读取目录eg:/tmp/sdcard/hle_camera
	struct dirent *ent;
	while ((ent=readdir(dir))!=NULL)
	{
		if(strcmp(ent->d_name,".")==0||strcmp(ent->d_name,"..")==0)
		{
			continue;
		}
		
		struct stat st;
		stat(ent->d_name,&st);
		if(S_ISDIR(st.st_mode)) //递归调用解析其子目录下的文件夹
		{
			getFileName(ent->d_name);
		}
		else //过滤输出保存mp4文件名
		{
			printf("%s\n",ent->d_name);

			//对文件名进行过滤,过滤掉不符合我们自己命名标准的文件
			if()
			{
				
			}
			
		}
	}
	closedir(dir);
	chdir("..");	//返回当前目录的上一级目录
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值