windows获取磁盘空间

具体来说并不是disk的空间,是说分区的空间。用的是GetDiskFreeSpaceEx()函数。另外,用GetDriveType()可以判断该分区的类型。例如,是硬盘、移动设备、光盘等。

 

int SYS_GetDriveInfo(DriveTable& lstDrive)
{
 ULARGE_INTEGER FreeAvailable,TotalNum,TotalFreeNum;
 for( int drive = 1; drive <= 26; drive++ )
 {
  char strDriveName[3];
  strDriveName[0] = drive + ‘A’ - 1;
  strDriveName[1] = ‘:’;
  strDriveName[2] = 0;

  int drive_type = GetDriveTypeA(strDriveName);
  if(drive_type == DRIVE_FIXED)
  {
   BOOL ret = GetDiskFreeSpaceExA( strDriveName ,&FreeAvailable,&TotalNum,&TotalFreeNum );
   if( ret )
   {
    DriveEntry info;
    info.nName = strDriveName[0];
    info.nAvail = FreeAvailable.QuadPart / (1024*1024);
    info.nTotal = TotalNum.QuadPart / (1024*1024);
    info.nFree = TotalFreeNum.QuadPart / (1024*1024);
    lstDrive.push_back(info);
   
  }
 }

 return 0;
}

转载自:http://blog.sina.com.cn/s/blog_8cfe05150100xd0b.html

猜你喜欢

转载自blog.csdn.net/u011731378/article/details/80217022