解决方案 »

  1.   

    我只会判断各个盘,然后加起来,行不行???
    这是判断一个盘的:
    //获得磁盘信息
    // char* pszDrive = "C:";
    ULARGE_INTEGER i64FreeBytesToCaller,i64TotalBytes,i64FreeBytes;
    GetDiskFreeSpaceEx(strLogicDisk,
    (PULARGE_INTEGER)&i64FreeBytesToCaller,
    (PULARGE_INTEGER)&i64TotalBytes,
    (PULARGE_INTEGER)&i64FreeBytes);// _int64 i64a = i64TotalBytes.QuadPart;
    m_disktotal.Format("%I64i MB", i64TotalBytes.QuadPart/1024/1024);
    m_diskavail.Format("%I64i MB", i64FreeBytes.QuadPart/1024/1024); UpdateData(FALSE);
      

  2.   

    WinNT/2000 下用 IOCTL_DISK_GET_DRIVE_GEOMETRY 参数调用 DeviceIoControl
    参考 MSDN "Calling DeviceIoControl on Windows NT/2000" 主题(很完整的例子)。Win9x 下可以通过 DeviceIoControl 调用 vwin32.vxd 提供的 DOS INT21 Function AX=7303H 服务,参考 MSDN "Using VWIN32 to Carry Out MS-DOS Functions" 和 "FAT32 File System Functions"