c遍历文件

#include <windows.h>
#include <stdio.h>
FILE *fp;
void findFile(char filePath[])//这个是你要的函数
{
char szFind[MAX_PATH];//这是要找的
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
char szFile[MAX_PATH];

strcpy(szFind,filePath);
strcat(szFind,"//*.*");//应用通配符找这个目录下的所以文件,包括目录

hFind=FindFirstFile(szFind,&FindFileData);
if(INVALID_HANDLE_VALUE == hFind) return;

while(TRUE)
{

if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//这是目录
{
if(FindFileData.cFileName[0]!='.')//.表示当前目录,由于每个目录下面都有两个默许目录就是..和.分别表示上一级目录和当前目录
{
strcpy(szFile,filePath);
strcat(szFile,"//");
strcat(szFile,FindFileData.cFileName);
findFile(szFile);//寻觅这个目录下面的文件
}
}
else
{
fprintf(stdout,"%s//%s/n",filePath,FindFileData.cFileName);//打印出目录下的文件的途径和称号
fprintf(fp,"%s//%s/n",filePath,FindFileData.cFileName);//这将结果存档到c://path.txt中。
}
if(!FindNextFile(hFind,&FindFileData))//寻觅下一个文件
break;
}
FindClose(hFind);//关闭句柄
}

int main()
{
fp = fopen("C://path.txt","w");
findFile("D://e-book//实习//随笔//读书ing");//这里是你要遍历的目录,你自己能够改动,它会显现这个目录下的一切文件,包括这个目录下子目录下的文件。
fclose(fp);
return 0;
}
 
 
 
#include <stdio.h>
#include <string.h>
#include <dir.h>

void find(char *c)
{
struct ffblk fb,fm;
int dr,df;
char dir[255]={0},tmp[255];
strcpy(tmp,c);

dr=findfirst(strcat(tmp,"//*"),&fb,FA_DIREC);
while (!dr)
  {
   if (strcmp(fb.ff_name,".")&&strcmp(fb.ff_name ,"..")&&fb.ff_attrib ==FA_DIREC) {
      strcpy(dir,c);
      strcat(dir,"//");
      strcat(dir,fb.ff_name);
      find(dir);
   }
   dr=findnext(&fb);
  }
df=findfirst(strcat(tmp,".*"),&fm,0);
while (!df)
  {
   printf("%s//%s/n",c,fm.ff_name);
   df=findnext(&fm);
  }
}

int main(void)
{

find("c:");

return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值