如何获取一个路径下子文件夹的个数啊求解
怎么获取一个路径下子文件夹的个数啊?求解
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
------解决方案--------------------
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 中