失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言搜索全盘文件 c语言全盘搜索指定文件的实例代码

c语言搜索全盘文件 c语言全盘搜索指定文件的实例代码

时间:2020-02-18 09:08:37

相关推荐

c语言搜索全盘文件 c语言全盘搜索指定文件的实例代码

#include

#include

void FindFile(char* ,char* );

int count=0;//统计文件数

char fname[32];

#define BUFSIZE 256

int main(int argc,char* argv[])

{

char szLogicalDriveStrings[BUFSIZE];

DWORD iLength;

int iSub;

printf("请输入要搜索的文件名:");

scanf("%s",fname);

ZeroMemory(szLogicalDriveStrings, BUFSIZE);

iLength = GetLogicalDriveStringsA(BUFSIZE-1, szLogicalDriveStrings);

for(iSub=0; iSub

{

//如果不是固定磁盘驱动器:本地硬盘或移动硬盘,忽略

if(GetDriveType(szLogicalDriveStrings+iSub)!=3)

continue;

FindFile(szLogicalDriveStrings+iSub,"*.*");

}

printf("一共发现%d个文件...\n",count);

scanf("%*d");

return 0;

}

void FindFile(char* pfilename,char* pfilter)

{

WIN32_FIND_DATA findfiledate;

HANDLE hfind;

char filename[512];

char lpFileName[512];

char _lpFileName[512];

int i;

int result;

for(i=0;*(pfilename+i)!='\0';i++)

filename[i]=*(pfilename+i);

filename[i]='\0';

//如果最后一个字符不是'\'

if(filename[strlen(filename)-1]!='\\')

strcat(filename,"\\"); //添加'\'

strcpy(lpFileName,filename);

strcat(lpFileName,pfilter);

hfind=FindFirstFile(lpFileName,&findfiledate);

if(hfind==INVALID_HANDLE_VALUE)

return;

do

{

//如果不是目录

if(!(findfiledate.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))

{

//如果找到指定文件

if(0==strcmp(fname,findfiledate.cFileName))

{

printf("%s%s\n",filename,findfiledate.cFileName);

count++;

}

}

//如果是目录

else

{

//.和..不输出

if(findfiledate.cFileName[0]!='.')

{

strcpy(_lpFileName,filename);

strcat(_lpFileName,findfiledate.cFileName);

FindFile(_lpFileName,pfilter); //递归

}

}

}while(FindNextFile(hfind,&findfiledate));//FindNextFile返回为真,继续搜索

FindClose(hfind);

return;

}

如果觉得《c语言搜索全盘文件 c语言全盘搜索指定文件的实例代码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。