int count;
int
CGetFileCountDlg::GetFileCount(CString szPath)
{
count
= 0;
Recurse(szPath);
return count;
}
void CGetFileCountDlg::Recurse(LPCTSTR pstr)
{
CFileFind finder;
// build a string with
wildcards
CString strWildcard(pstr);
strWildcard +=
_T("\\*.*");
// start working for files
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking)
{
bWorking =
finder.FindNextFile();
if (finder.IsDots())
//判断是否是文件
continue;
if(!finder.IsDirectory())
{
count ++;
}
// if it's a
directory, recursively search it
if (finder.IsDirectory())
//判断是否是
文件夹 //路径
{
CString str =
finder.GetFilePath();
Recurse(str);
}
}
finder.Close();
}
count 就是目录下文件的个数
SDK的
HANDLE hFind;
WIN32_FIND_DATA dataFind;
BOOL bMoreFiles=TRUE;
int iCount=0;//统计文件数的变量
//m_strDir就是你要指定的路径
hFind=FindFirstFile(m_strDir+"\*.*",&dataFind);//找到路径中所有文件
//遍历路径中所有文件
while(hFind!=INVALID_HANDLE_VALUE&&bMoreFiles==TRUE)
{
if(dataFind.dwFileAttributes!=FILE_ATTRIBUTE_DIRECTORY)//判断是否是文件
{
iCount++;
}
bMoreFiles=FindNextFile(hFind,&dataFind);
}
FindClose(hFind);