MFC我想遍历某个文件夹的所有文件并获取文件大小,再把它们加起来
voidCDlgSort::RefreshDataTemp(CStringstrDir){ULONGLONGsize;ULONGLONGSize=0;if(strDir=...
void CDlgSort::RefreshDataTemp(CString strDir)
{
ULONGLONG size;
ULONGLONG Size = 0;
if(strDir == _T(""))
{
return;
}
else
{
if(strDir.Right(1) != _T("//"))
strDir += L"//";
strDir =strDir+_T("*.*");
}
CFileFind finder;
CString strPath;
BOOL bWorking = finder.FindFile(strDir);
while(bWorking)
{
bWorking = finder.FindNextFile();
strPath = finder.GetFilePath();
if(finder.IsDirectory() && !finder.IsDots())
{
RefreshDataTemp(strPath);} //递归调用
if(!finder.IsDirectory() && !finder.IsDots())
{
size = finder.GetLength();
Size = Size + size;
}
}CString tr;
tr.Format(_T("%I64uMB"), Size/1024/1024);
SetDlgItemText(IDC_EDIT1,tr);
}
为什么它并没有深入到文件夹中的文件夹,只获得了当前目录下的文件的大小 展开
{
ULONGLONG size;
ULONGLONG Size = 0;
if(strDir == _T(""))
{
return;
}
else
{
if(strDir.Right(1) != _T("//"))
strDir += L"//";
strDir =strDir+_T("*.*");
}
CFileFind finder;
CString strPath;
BOOL bWorking = finder.FindFile(strDir);
while(bWorking)
{
bWorking = finder.FindNextFile();
strPath = finder.GetFilePath();
if(finder.IsDirectory() && !finder.IsDots())
{
RefreshDataTemp(strPath);} //递归调用
if(!finder.IsDirectory() && !finder.IsDots())
{
size = finder.GetLength();
Size = Size + size;
}
}CString tr;
tr.Format(_T("%I64uMB"), Size/1024/1024);
SetDlgItemText(IDC_EDIT1,tr);
}
为什么它并没有深入到文件夹中的文件夹,只获得了当前目录下的文件的大小 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询