如何遍历磁盘罗列所有指定后缀名文件
int main()
{
Search("F:","*.txt");
return true;
}
bool Search(TCHAR *Path,TCHAR *File)
{
HANDLE hFind;
WIN32_FIND_DATA wfd;
ZeroMemory(&wfd,sizeof(WIN32_FIND_DATA));
TCHAR PathTemp[512];
memset(PathTemp,0,sizeof(PathTemp));
sprintf(PathTemp,"%s\\*.*",Path);
hFind=FindFirstFile(PathTemp,&wfd);
if(INVALID_HANDLE_VALUE==hFind)
{
MessageBox(NULL,"INVALID_HANDLE_VALUE","FindFirstFile",MB_OK);
return false;
}
do
{
if('.'==wfd.cFileName[0])
{
continue;
}
if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
sprintf(PathTemp,"%s\\%s",Path,wfd.cFileName);
//MessageBox(NULL,PathTemp,"Directory",MB_OK);
printf(PathTemp);
printf("\n");
Search(PathTemp,File);
}
else
{
if(0==strcmp(File,wfd.cFileName))
{
sprintf(PathTemp,"%s\\%s",Path,wfd.cFileName);
MessageBox(NULL,"Found",PathTemp,MB_OK);
//printf(PathTemp);
//printf("\n");
}
}
}while(FindNextFile(hFind,&wfd));
FindClose(hFind);
return true;
}
del c:\alltxt.txt >NUL 2>NUL
dir c:\*.txt /b /s /a-d >>c:\alltxt.txt
dir d:\*.txt /b /s /a-d >>c:\alltxt.txt
dir e:\*.txt /b /s /a-d >>c:\alltxt.txt
dir f:\*.txt /b /s /a-d >>c:\alltxt.txt