//获取文件夹的大小
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;
}
获取文件夹大小
最新推荐文章于 2024-08-09 09:17:59 发布