c遍历文件内容|怎么用C语言编程遍历文件夹下所有文件名

c遍历文件内容|怎么用C语言编程遍历文件夹下所有文件名的第1张示图

❶ 请我如何c语言遍历文件夹

现成的没有,给你参考下:c++:1、CFileFind类实现遍历文件,FindNext()查找下一个文件2、比较文件后缀,符合要求就写入txt有不懂得话加Q:2311776177!

❷ 怎么实现c语言遍历d盘文件数

windows系统,代码举例如下:include <windows.h>#include <stdio.h>#include <io.h>void func(const char *dir, int *dirs, int *files){_finddata_t fi;char fname[MAX_PATH];strcpy(fname, dir);strcat(fname, "\\*.*");int handle = _findfirst(fname, &fi);if (handle > 0){do{if (fi.attrib & 0x10) // 是子目录{(*dirs)++;if (!strcmp(fi.name, ".") || !strcmp(fi.name, "..")) continue; //特殊目录处理sprintf(fname, "%s\\%s", dir, fi.name); // 生成新路径存于fnamefunc(fname, dirs, files); // 递归调用}else (*files)++;} while (!_findnext(handle, &fi));}_findclose(handle);}int main(){int dirs = 0, files = 0;func("D:\\", &dirs, &files);printf("%d 个目录,%d 个文件\n", dirs, files);return 0;}

❸ 请教C语言如何遍历文本文件,比较取得其中想要的内容(高分悬赏)

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){FILE *pf;char pl[513],*pw;char sp[]="/,";int i;double min=1e30, d;pf=fopen("cls-2.cls","r");if(!pf){printf("打开文件时出错\n");return 1;}while(fgets(pl,512,pf)!=0){strlwr(pl); //将字符串pl中的字母变为小写pw=strtok(pl,sp); //提前字符串pl中的首个单词if(strcmp(pw,"goto")!=0) continue;for(i=0; i<3; i++)pw=strtok(0,sp); //提取GOTO之后的第三个数字d=atof(pw);if(d<min) min=d;}printf("min=%.6lf\n",min);fclose(pf);return 0;}

❹ 怎么用C语言遍历文件啊

三种方法可以实现:1 按字节遍历:逐个字节读取文件,达到遍历的效果。int c;while((c = fgetc(fp)) != EOF) //读取每个字节,fp为打开的文件指针。{ //对c做一些操作。 c就是遍历中的每个字节。}2 按行遍历:利用fgets,逐行读取文件进行遍历。char buf[1024];while(fgets(buf)) //逐行读取文件。{ //对buf做操作,buf为每一行的数据。}3 将文件整个读到内存,按照字符数组进行遍历。可以将文件整体读到内存,对内存空间进行多样化遍历,这种方式适用于文件比较小,且遍历次数较多的情况,可以提高效率。读取文件可以采用1中的逐个字节读取的方式,存到内存空间。

❺ 在windows下 怎么用c语言遍历文件夹要用纯c的

什么叫纯C?用C语言遍历文件肯定需要用到函数,标准C下貌似没有这个函数内,但容是使用VC的函数库可能可以实现,如果实在不行可以用第三方函数库,,,还不行的话用system("command");引用dos命令可以遍历,

❻ 如何用C实现遍历文件夹

在Win32平台下不用windows api,有好多功能实现起来都很费劲,特别是系统相关的再说用api又不是什么丢人的事。开发可移植程序除外。用FindFirstFile和FindNextFile两个api很容易实现////////////////////////////////////////////////void FindFile(LPCTSTR lpszPath) {TCHAR szFind[MAX_PATH];lstrcpy(szFind,lpszPath);if(!IsRoot(szFind)) lstrcat(szFind,"\\");lstrcat(szFind,"*.*");WIN32_FIND_DATA wfd;HANDLE hFind=FindFirstFile(szFind,&wfd);if(hFind==INVALID_HANDLE_VALUE) return;do{if(lstrcmp(wfd.cFileName,".")==0||lstrcmp(wfd.cFileName,"..")==0) continue; char szFile[MAX_PATH]; lstrcpy(szFile,lpszPath); if(!IsRoot(szFile)) lstrcat(szFile,"\\"); lstrcat(szFile,wfd.cFileName); if((GetFileAttributes(szFile)&FILE_ATTRIBUTE_DIRECTORY)==FILE_ATTRIBUTE_DIRECTORY){ FindFile(szFile); //递归 }else { } //Do your things } } while (FindNextFile(hFind,&wfd)); CloseHandle(hFind); }

❼ C语言如何实现遍历文件夹下的所有txt文件并在文件中搜索字符串

用 FINDFile和FindNextFile可以遍历整个文件夹,然后取出文件名判断是否txt,再打开文件读取内容进行查找。

❽ 怎么用C语言编程遍历文件夹下所有文件名

/**************************************************这是CBrowseDir的类定义文件BrowseDir.h/**************************************************#include"stdlib.h"classCBrowseDir{protected://存放初始目录的绝对路径,以''结尾charm_szInitDir[_MAX_PATH];public://缺省构造器CBrowseDir();//设置初始目录为dir,如果返回false,表示目录不可用boolSetInitDir(constchar*dir);//开始遍历初始目录及其子目录下由filespec指定类型的文件//filespec可以使用通配符*?,不能包含路径。//如果返回false,表示遍历过程被用户中止boolBeginBrowse(constchar*filespec);protected://遍历目录dir下由filespec指定的文件//对于子目录,采用迭代的方法//如果返回false,表示中止遍历文件boolBrowseDir(constchar*dir,constchar*filespec);//函数BrowseDir每找到一个文件,就调用ProcessFile//并把文件名作为参数传递过去//如果返回false,表示中止遍历文件//用户可以覆写该函数,加入自己的处理代码virtualboolProcessFile(constchar*filename);//函数BrowseDir每进入一个目录,就调用ProcessDir//并把正在处理的目录名及上一级目录名作为参数传递过去//如果正在处理的是初始目录,则parentdir=NULL//用户可以覆写该函数,加入自己的处理代码//比如用户可以在这里统计子目录的个数virtualvoidProcessDir(constchar*currentdir,constchar*parentdir);};/*********************************************/这是CBrowseDir的类实现文件BrowseDir.cpp/***********************************************/#include"stdlib.h"#include"direct.h"#include"string.h"#include"io.h"#include"browsedir.h"CBrowseDir::CBrowseDir(){//用当前目录初始化m_szInitDirgetcwd(m_szInitDir,_MAX_PATH);//如果目录的最后一个字母不是'',则在最后加上一个''intlen=strlen(m_szInitDir);if(m_szInitDir[len-1]!='\')strcat(m_szInitDir,"\");}boolCBrowseDir::SetInitDir(constchar*dir){//先把dir转换为绝对路径if(_fullpath(m_szInitDir,dir,_MAX_PATH)==NULL)returnfalse;//判断目录是否存在if(_chdir(m_szInitDir)!=0)returnfalse;//如果目录的最后一个字母不是'',则在最后加上一个''intlen=strlen(m_szInitDir);if(m_szInitDir[len-1]!='\')strcat(m_szInitDir,"\");returntrue;}boolCBrowseDir::BeginBrowse(constchar*filespec){ProcessDir(m_szInitDir,NULL);returnBrowseDir(m_szInitDir,filespec);}boolCBrowseDir::BrowseDir(constchar*dir,constchar*filespec){_chdir(dir);//首先查找dir中符合要求的文件longhFile;_finddata_tfileinfo;if((hFile=_findfirst(filespec,&fileinfo))!=-1){do{//检查是不是目录//如果不是,则进行处理if(!(fileinfo.attrib&_A_SUBDIR)){charfilename[_MAX_PATH];strcpy(filename,dir);strcat(filename,fileinfo.name);if(!ProcessFile(filename))returnfalse;}}while(_findnext(hFile,&fileinfo)==0);_findclose(hFile);}//查找dir中的子目录//因为在处理dir中的文件时,派生类的ProcessFile有可能改变了//当前目录,因此还要重新设置当前目录为dir。//执行过_findfirst后,可能系统记录下了相关信息,因此改变目录//对_findnext没有影响。_chdir(dir);if((hFile=_findfirst("*.*",&fileinfo))!=-1){do{//检查是不是目录//如果是,再检查是不是.或..//如果不是,进行迭代if((fileinfo.attrib&_A_SUBDIR)){if(strcmp(fileinfo.name,".")!=0&&strcmp(fileinfo.name,"..")!=0){charsubdir[_MAX_PATH];strcpy(subdir,dir);strcat(subdir,fileinfo.name);strcat(subdir,"\");ProcessDir(subdir,dir);if(!BrowseDir(subdir,filespec))returnfalse;}}}while(_findnext(hFile,&fileinfo)==0);_findclose(hFile);}returntrue;}boolCBrowseDir::ProcessFile(constchar*filename){returntrue;}voidCBrowseDir::ProcessDir(constchar*currentdir,constchar*parentdir){}/*************************************************这是例子example.cpp/*************************************************#include"stdio.h"#include"BrowseDir.h"//从CBrowseDir派生出的子类,用来统计目录中的文件及子目录个数classCStatDir:publicCBrowseDir{protected:intm_nFileCount;//保存文件个数intm_nSubdirCount;//保存子目录个数public://缺省构造器CStatDir(){//初始化数据成员m_nFileCount和m_nSubdirCountm_nFileCount=m_nSubdirCount=0;}//返回文件个数intGetFileCount(){returnm_nFileCount;}//返回子目录个数intGetSubdirCount(){//因为进入初始目录时,也会调用函数ProcessDir,//所以减1后才是真正的子目录个数。returnm_nSubdirCount-1;}protected://覆写虚函数ProcessFile,每调用一次,文件个数加1virtualboolProcessFile(constchar*filename){m_nFileCount++;returnCBrowseDir::ProcessFile(filename);}//覆写虚函数ProcessDir,每调用一次,子目录个数加1virtualvoidProcessDir(constchar*currentdir,constchar*parentdir){m_nSubdirCount++;CBrowseDir::ProcessDir(currentdir,parentdir);}};voidmain(){//获取目录名charbuf[256];printf("请输入要统计的目录名:");gets(buf);//构造类对象CStatDirstatdir;//设置要遍历的目录if(!statdir.SetInitDir(buf)){puts("目录不存在。");return;}//开始遍历statdir.BeginBrowse("*.*");//统计结果中,子目录个数不含.及..printf("文件总数:%d子目录总数:%d",statdir.GetFileCount(),statdir.GetSubdirCount());}

❾ 如何用c++写文件遍历

不需要特别的库C++标准库+Windows API就可以了整个流程无非就是:1.获取第一个文件2.判断是否特定格式文件(也就是你需要遍历的文件格式)3.如果是特定格式则做处理4.获取下一个文件,如果不为空,则跳转到2.5.获取文件为空,则结束遍历你可以参考一下这段代码http://blog.csdn.net/swsamleo/article/details/7694472有什么不懂可以继续问

未经允许不得转载:山九号 » c遍历文件内容|怎么用C语言编程遍历文件夹下所有文件名

赞 (0)