算法是别处摘来,是个递归算法,自己改了下。
想自己写个非递归的,无奈水平臭。。
int ifold = 0;//文件夹数
int ifile = 0;//文件数
void find(WCHAR * lpPath)
{
WCHAR szFind[MAX_PATH];
WIN32_FIND_DATA FindFileData;
wcscpy(szFind,lpPath);
wcscat(szFind,_T("//*.*"));
HANDLE hFind=::FindFirstFile(szFind,&FindFileData);
if(INVALID_HANDLE_VALUE == hFind) return;
while(TRUE)
{
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if(FindFileData.cFileName[0]!='.')
{
ifold++;
wcscpy(szFind,lpPath);
wcscat(szFind,_T("//"));
wcscat(szFind,FindFileData.cFileName);
find(szFind);
}
}
else
{
ifile++;
}
if(!FindNextFile(hFind,&FindFileData)) break;
}
FindClose(hFind);
}