ULONGLONG CHKVisionDlg::GetDiskSpace(LPCTSTR DriverName, int Style)
{
ULONGLONG SpaceSize;
ULARGE_INTEGER nFreeBytesAvailable;
ULARGE_INTEGER nTotalNumberOfBytes;
ULARGE_INTEGER nTotalNumberOfFreeBytes;
ULARGE_INTEGER ALargeInteger;
GetDiskFreeSpaceEx(DriverName, &nFreeBytesAvailable,
&nTotalNumberOfBytes, &nTotalNumberOfFreeBytes);
switch(Style)
{
case 0:
{
ALargeInteger=nFreeBytesAvailable;//磁盘有效空间
break;
}
case 1:
{
ALargeInteger=nTotalNumberOfBytes;//磁盘总的空间
break;
}
case 2:
{
ALargeInteger=nTotalNumberOfFreeBytes;//磁盘空闲的空间
break;
}
}
//转换为M的单位
ALargeInteger.QuadPart<<20;
SpaceSize=ALargeInteger.QuadPart;
return SpaceSize;
}