比较要拷贝的文件大小和磁盘的剩余空间大小

来源:互联网 发布:php遍历json对象 编辑:程序博客网 时间:2024/05/17 05:03

BOOL CABCToolDlg::CheckDiskSpace(CHAR cDiskLable, CString csPcFilePath)
{
 // 判断磁盘空间是否大于文件大小
 CString csDisk;
 csDisk.Format("%c", cDiskLable);
 csDisk += ":";
 ULARGE_INTEGER pDiskUserAvalibleSpace;
 ULARGE_INTEGER pDiskTotalSpace;
 ULARGE_INTEGER pDiskRemainSpace;
 CString csErrorOfDiskSpace = csDisk;
 if(GetDiskFreeSpaceEx((LPCTSTR)csDisk, &pDiskUserAvalibleSpace, &pDiskTotalSpace, &pDiskRemainSpace))
 {
  DWORD64 nFileSize = GetFolderSize(csPcFilePath);
  if (pDiskUserAvalibleSpace.QuadPart < nFileSize)
  {

   csErrorOfDiskSpace += "盘剩余空间小于拷贝的文件大小!";
   AfxMessageBox(csErrorOfDiskSpace);
   return FALSE;
  }
 }
 else
 {
  csErrorOfDiskSpace += "剩余空间获取失败!";
  AfxMessageBox(csErrorOfDiskSpace);
  return FALSE;
 }

 return TRUE;
}