在旧的Windows2000上,我怎样才能得到硬盘的确切大小(字节)?
IOCTL_DISK_GET_LENGTH_INFO对卷很好,但对Windows 2000上的物理磁盘句柄(stuff at///PHYSICALDISKx)不起作用。(适用于XP或更高版本的物理驱动器)
我们仍然要支持这个古老的操作系统。。。
更新:
代码是用C编写的,所以如果可能的话,我将使用普通的Windows API。

最佳答案

您可以在C中获得可用空间(不需要任何API等)
如果您运行“dir c:\”,最后一行将为您提供可用磁盘空间。
更好的解决方案:“fsutil volume diskfree c:
或者试试下面的代码。。。

void main (int argc, wchar_t **argv)
       {
          BOOL  fResult;
          unsigned __int64 i64FreeBytesToCaller,
                           i64TotalBytes,
                           i64FreeBytes;
             fResult = GetDiskFreeSpaceEx (L"C:",
                                     (PULARGE_INTEGER)&i64FreeBytesToCaller,
                                     (PULARGE_INTEGER)&i64TotalBytes,
                                     (PULARGE_INTEGER)&i64FreeBytes);
             if (fResult)
             {
                printf ("\n\nGetDiskFreeSpaceEx reports\n\n");
                printf ("Available space to caller = %I64u MB\n",
                        i64FreeBytesToCaller / (1024*1024));
                printf ("Total space               = %I64u MB\n",
                        i64TotalBytes / (1024*1024));
                printf ("Free space on drive       = %I64u MB\n",
                        i64FreeBytes / (1024*1024));
             }
       }

09-08 04:10