玩酷之家

 找回密码
 立即注册
查看: 1313|回复: 0

获取磁盘容量大小

[复制链接]

98

主题

103

帖子

426

积分

中级会员

Rank: 3Rank: 3

积分
426
发表于 2019-3-7 21:12:07 | 显示全部楼层 |阅读模式
  1. Private Type LARGE_INTEGER
  2.   lowpart As Long
  3.   highpart As Long
  4. End Type

  5. Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" _
  6. (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As LARGE_INTEGER, _
  7. lpTotalNumberOfBytes As LARGE_INTEGER, lpTotalNumberOfFreeBytes _
  8. As LARGE_INTEGER) As Long




  9. Private Function GetSize(lngSize As LARGE_INTEGER) As Single

  10. '用来从LARGE_INTEGER型变量中换算出实际的大小
  11. With lngSize
  12.   If .highpart < 0 Then
  13.     GetSize = (2 ^ 32 - 1 - .highpart) * (2 ^ 32 - 1)
  14.   Else
  15.     GetSize = .highpart * (2 ^ 32 - 1)
  16.   End If
  17.   If .lowpart < 0 Then
  18.     GetSize = GetSize + (2 ^ 32 - 1 - .lowpart)
  19.   Else
  20.     GetSize = GetSize + .lowpart
  21.   End If
  22. End With
  23. End Function


  24. Private Sub Command1_Click()
  25. '用GetDiskFreeSpaceEx得到正确的容量
  26.   Dim lngFreeCaller As LARGE_INTEGER
  27.   Dim lngTotal As LARGE_INTEGER
  28.   Dim lngTotalFree As LARGE_INTEGER
  29.   Dim sngSize#

  30.   GetDiskFreeSpaceEx "c:", lngFreeCaller, lngTotal, lngTotalFree
  31. '以下用来显示出分区总容量(以G为单位)
  32.   MsgBox GetSize(lngTotal) / 2 ^ 30
  33. End Sub


复制代码


最多选择要压缩的20张 PNG图像
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|玩酷之家 ( 鄂ICP备14012049号-1 )|

GMT+8, 2020-8-4 16:23 , Processed in 1.076402 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表