手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

用VB获得大容量硬盘信息

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

 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
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!