解决方案 »
- VC界面
- 怎样修改wxListCtrl每个单元格的颜色
- 搞图像处理软件方面的学生,什么样的公司企业比较对口,有什么好的公司?
- 请教大家2个问题,一个是关于ACE,另一个关于线程操作!
- visual C++6.0 visual studio .net 2003 visual studio .net 2005
- 使用HKEY_PERFORMANCE_DATA 的PPERF_DATA_BLOCK需要include那个头文件?
- MFC 运行程序自动探测桌面快捷方式是否生成
- 使用ADO数据库控件的程序为什么只能在安装了vc集成环境的win98运行,可以不安装vc便可运行吗?
- 咨询一下Bitblt的使用技巧
- z
- CImage如何加载一张Png到对话框的背景上?
- afx_msg BOOL OnEraseBkgnd(CDC* pDC);//return 1,怎么对话框的背景不是黑色的?
ULONGLONG CFileManager::CalcDirSize( const CString& strDirName)
{
CFileFind finder;
CString strDirFullName(strDirName);
strDirFullName += _T("\\*.*");
BOOL bRet = finder.FindFile(strDirFullName);
ULONGLONG nTotal = 0;
while (bRet)
{
bRet = finder.FindNextFile();
if (finder.IsDots())
{
continue;
}
else if (finder.IsDirectory())
{
nTotal += CalcDirSize(finder.GetFilePath());
}
else
{
nTotal += finder.GetLength();
}
}
finder.Close();
return nTotal;
}
计算指定目录大小的代码,楼主可以参考
void 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(); // skip . and .. files; otherwise, we'd
// recur infinitely! if (finder.IsDots())
continue; // if it's a directory, recursively search it
CString str = finder.GetFilePath();
TRACE(_T("%s\n"), (LPCTSTR)str); if (finder.IsDirectory())
{
Recurse(str);
}
} finder.Close();
}void PrintDirs()
{
Recurse(_T("C:"));
}
和回调没什么关系.