您的位置:首页 > 其它

获取文件夹大小

2013-10-29 16:24 197 查看
//获取文件夹的大小
DWORD64 CCDBurnDlg::GetFolderSize(LPCTSTR lpFileName)
{
CString strTemp;
strTemp.Format(_T("%s"), lpFileName);
strTemp += _T("\\*");
WIN32_FIND_DATA FindFileData;
//获取文件属性信息
memset(&FindFileData, 0x00, sizeof(WIN32_FIND_DATA));
HANDLE hParent;

hParent = FindFirstFile(strTemp,&FindFileData);
if (hParent == INVALID_HANDLE_VALUE)
{
return 0;
}
WIN32_FIND_DATA subFile;
memset(&subFile, 0x00, sizeof(WIN32_FIND_DATA));
BOOL bRet = FindNextFile(hParent, &FindFileData);
DWORD64 nSize = 0;
while(FindNextFile(hParent, &FindFileData))
{
DWORD dwAttr = FindFileData.dwFileAttributes & 0x00000010;	//判断属性是否是文件夹
if (dwAttr == FILE_ATTRIBUTE_DIRECTORY )
{
DWORD64 nSize1=0;
CString strTemp;
strTemp.Format(_T("%s"), lpFileName);
strTemp += _T("\\");
strTemp += FindFileData.cFileName;
/*strTemp += _T("\\*");*/
nSize1 = GetFolderSize( strTemp);
nSize += nSize1;
}
DWORD64 filesize = FindFileData.nFileSizeHigh * 0xffffffff + FindFileData.nFileSizeLow;
nSize += filesize;
}
FindClose(hParent);
return nSize;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: