Dim lngPerCluster&
Dim lngperBytes&
Dim lngSize#
GetDiskFreeSpace "c:\", lngPerCluster, lngperBytes, lngFreeCluster, lngTotalCluster
MsgBox CStr(lngTotalCluster * lngperBytes * lngPerCluster)
End Sub
Private Sub cmdStart_Click()
'用GetDiskFreeSpaceEx得到正确的容量
Dim lngFreeCaller As LARGE_INTEGER
Dim lngTotal As LARGE_INTEGER
Dim lngTotalFree As LARGE_INTEGER
Dim sngSize#
GetDiskFreeSpaceEx "c:\", lngFreeCaller, lngTotal, lngTotalFree
'以下用来显示出分区总容量(以G为单位)
MsgBox GetSize(lngTotal) / 2 ^ 30
End Sub
Private Function GetSize(lngSize As LARGE_INTEGER) As Single
'用来从LARGE_INTEGER型变量中换算出实际的大小
With lngSize
If .highpart < 0 Then
GetSize = (2 ^ 32 - 1 - .highpart) * (2 ^ 32 - 1)
Else
GetSize = .highpart * (2 ^ 32 - 1)
End If
If .lowpart < 0 Then
GetSize = GetSize (2 ^ 32 - 1 - .lowpart)
Else
GetSize = GetSize .lowpart
End If
End With
End Function
Private Function GetSize(lngSize As LARGE_INTEGER) As Single
'用来从LARGE_INTEGER型变量中换算出实际的大小
With lngSize
If .highpart < 0 Then
GetSize = (2 ^ 32 - 1 - .highpart) * (2 ^ 32 - 1)
Else
GetSize = .highpart * (2 ^ 32 - 1)
End If
If .lowpart < 0 Then
GetSize = GetSize (2 ^ 32 - 1 - .lowpart)
Else
GetSize = GetSize .lowpart
End If
End With
End Function
从LARGE_INTEGER的定义来看,应用此函数理论上可得到2^64/2^30=2^34G的分区的大小,不知这辈子能否用上这么大的硬盘
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



