C语言读取文件夹一级子目录的指定类型文件

参考链接:

C语言读取指定文件夹下的所有文件(各种信息)_c语言读取文件夹下的所有文件-CSDN博客 

参考以上文案,做成了几个函数,用于读取任意文件夹下的指定后缀的文件。

#include <stdio.h>
#include <io.h>
#include <direct.h>
void loadfile_scanf(char *dirname,char* next,char* kind,char **msg)
{
	//文件存储信息结构体
	struct _finddata_t fileinfo;
	//保存文件句柄
	long fHandle;
	//文件数记录器
	char dirpath[100];
	strcpy(dirpath,dirname);
	if(access(dirpath,0)==-1)								// 检查文件夹是否存在,不存在为 -1
	{
		mkdir(dirpath);
		return;
	}
	else
	{
		int i = 0;																	// 记录文件数量
		char kindpath[100];
		strcpy(kindpath,dirpath);
		strcat(kindpath,next);
		strcat(kindpath,kind);
		if( (fHandle=_findfirst( kindpath, &fileinfo )) == -1L ) 					// *是通配符,默认在当前文件夹内查找文件,这里查找 .png 文件
		{
			printf( "当前目录: %s 下没有 txt 文件\n",dirname);
			return ;
		}
		else
		{
			FILE *fp;
			char test[100]="";														// 存储读取到的数据
			char path[100];
			do
			{
				i ++;
				printf( "找到文件:%s,文件大小:%d bit\n", fileinfo.name,fileinfo.size);
				strcpy(path,dirname);
				strcat(path,next);
				strcat(path,fileinfo.name);
				fp=fopen(path,"r");
				fscanf(fp,"%s\n",test);
				printf("已接收内容:%s\n",test);
				fclose(fp);
				strcpy(msg[i],test);
			}
			while( _findnext(fHandle,&fileinfo)==0);
		}
		//关闭文件
		_findclose( fHandle );

		printf("文件数量:%d\n",i);
	}
}
void showmsg(char** msg,int num)
{
	for(int i=1; i<num; i++)
		if(strcmp(msg[i],"")!=0)
			printf("show num:%d : %s\n",i,msg[i]);
}
void flushmsg(char** msg,int num)
{
	for(int i=0; i<num; i++)
	{
		strcpy(msg[i],"");
	}
}
void loadfile(char **msg)
{
	char brick[100]="birck_6_family";
	char ground[100]="ground_7_family";
	char change[100]="change_8_family";
	char trick[100]="trick_9_family";
	char next[100]="./";
	char png[100]="*.txt";
	loadfile_scanf(brick,next,png,msg);
	showmsg(msg,10);
	flushmsg(msg,10);
	loadfile_scanf(ground,next,png,msg);
	showmsg(msg,10);
	flushmsg(msg,10);
	loadfile_scanf(change,next,png,msg);
	showmsg(msg,10);
	flushmsg(msg,10);
	loadfile_scanf(trick,next,png,msg);
	showmsg(msg,10);
	flushmsg(msg,10);
}
int main()
{
	int num=10;
	char **msg;
	msg=new char* [num];
	for(int i=0; i<num; i++)
	{
		msg[i]=new char[100];
		strcpy(msg[i],"");
	}
	loadfile(msg);
	return 0;
}

相关推荐

  1. C语言读取文件夹一级子目录指定类型文件

    2024-02-21 20:54:01       36 阅读
  2. C# 读取指定文件夹

    2024-02-21 20:54:01       17 阅读
  3. c语言如何改变文件读取位置

    2024-02-21 20:54:01       9 阅读
  4. 【使用python读取类型文件夹文档内容】

    2024-02-21 20:54:01       14 阅读
  5. C语言---—————— 快速创建指定个数文件

    2024-02-21 20:54:01       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-21 20:54:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-21 20:54:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-21 20:54:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-21 20:54:01       20 阅读

热门阅读

  1. 漫谈C与C++(《Effictive C++》/关于函数重载)

    2024-02-21 20:54:01       29 阅读
  2. C Primer Plus(第六版)16.18 编程练习 第5题

    2024-02-21 20:54:01       28 阅读
  3. C语言:密码强度

    2024-02-21 20:54:01       22 阅读
  4. C语言----数组

    2024-02-21 20:54:01       24 阅读
  5. Node响应Vue axios请求方法说明

    2024-02-21 20:54:01       28 阅读
  6. Git面试题整理(对比)

    2024-02-21 20:54:01       24 阅读
  7. C语言—自定义(构造)类型

    2024-02-21 20:54:01       30 阅读
  8. 【GIT学习】仓库过大的清理办法

    2024-02-21 20:54:01       24 阅读