#include "stdafx.h"
#include "windows.h"
#include "string.h"
#include "time.h" //clock()
#define MAX 1000
int level = 0;
int filecount = 0;
void Findfile(char * filepath);
int _tmain(int argc, _TCHAR* argv[])
{
clock_t start,end;
char filepath[MAX] = {"c://"};
level = 0;
filecount = 0 ;
start = clock();
::Findfile(filepath);
end = clock();
printf("%s file count %d/n",filepath,filecount);
printf("Interval = %.2f seconds/n",(double)(end-start)/(double)CLOCKS_PER_SEC);
getchar();
return 0;
}
void Findfile(char * filepath)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
char temppath[MAX];
char tempfile[MAX];
++level;
strcpy(tempfile,filepath);
strcat(tempfile,"*");
if ( hFind = FindFirstFile(tempfile, &FindFileData) )
{
if ( strcmp( FindFileData.cFileName,".") && strcmp( FindFileData.cFileName,"..") )
{
printf ("The file found is %s/n", FindFileData.cFileName);
++filecount;
}
}
else
{
return ;
}
while( FindNextFile(hFind,&FindFileData) )
{
if ( FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY && strcmp( FindFileData.cFileName,".")
&& strcmp( FindFileData.cFileName,"..") )
{
printf ("The file found is %s/n", FindFileData.cFileName);
++filecount;
}
else if ( strcmp( FindFileData.cFileName,".") && strcmp( FindFileData.cFileName,"..") )
{
temppath[0] = '/0';
strcat(temppath,filepath);
strcat(temppath,FindFileData.cFileName);
strcat(temppath,"//");
::Findfile( temppath );
}
}
--level;
FindClose(hFind);
}