怎么获取一个路径下子文件夹的个数啊?求解
int num = 0;
CFileFind find;
CString temp ;
temp="D:\\test";
temp.Append("\\*.*");
BOOL working = find.FindFile(temp);
while (working)
{
working = finder.FindNextFile();
if (finder.IsDots())
continue;
if (finder.IsDirectory())
num++;
}
是不是这样写的啊?
但是结果不对啊?一直为1
[解决办法]
- C/C++ code
#include <stdio.h>#include <tchar.h>WIN32_FIND_DATA wfd;TCHAR szDir[MAX_PATH] = TEXT("D:\\ccrun\\"); // 要查询的目录TCHAR szFile[MAX_PATH] = TEXT("");_tcscpy(szFile, szDir);_tcscat(szFile, TEXT("*.*"));HANDLE hFind = ::FindFirstFile(szFile, &wfd);int nSubDirCount = 0;if (INVALID_HANDLE_VALUE != hFind){ do { if (!_tcscmp(wfd.cFileName, TEXT(".")) || !_tcscmp(wfd.cFileName, TEXT(".."))) continue; // 如果是子目录就计数 if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) nSubDirCount++; } while (::FindNextFile(hFind, &wfd));}::FindClose(hFind);// 最后结果存储在 nSubDirCount 中