首页 >> 文档 >> C/C++专题

VC获取文件夹大小

发布日期:2008-05-29最近更新:2008-05-29来源:BHCODE作者:

VC获取文件夹大小代码:

以下是代码片段:

DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles, DWORD *dwFolders)
{
 TCHAR szFileFilter[512];
 TCHAR szFilePath[512];
 HANDLE hFind = NULL;
 WIN32_FIND_DATA fileinfo;
 DWORD64    dwSize = 0;

 strcpy(szFilePath,szPath);
 strcat(szFilePath,"\\");
 strcpy(szFileFilter,szFilePath);
 strcat(szFileFilter,"*.*");


 hFind = FindFirstFile(szFileFilter,&fileinfo);
 do
 {
  if(fileinfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
  {
   if (!strcmp(fileinfo.cFileName,".") || !strcmp(fileinfo.cFileName,".."))
   {
    //Do nothing for "." and ".." folders
   }
   else
   {
    TCHAR sztmp[512];
    strcpy(sztmp,szFilePath);
    strcat(sztmp,fileinfo.cFileName);
    dwSize = dwSize + GetFolderSize(sztmp);
    if(dwFolders != NULL)
    {
     ++(*dwFolders);
    }
   }
  }
  else
  {
   if(dwFiles != NULL)
   {
    ++(*dwFiles);
   }
  }


  dwSize += fileinfo.nFileSizeLow;

 }while(FindNextFile(hFind,&fileinfo));

 FindClose(hFind);
 return dwSize;
}

本周推荐
MORE
热点关注
MORE