本文主要是介绍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;
}
这篇关于C语言读取文件夹一级子目录的指定类型文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!