如何获得任意磁盘的剩余空间.txt

来自「以电子书的形式收集了VB一些常见问题解决方法,可以很方便的查找自己需要解决的问题」· 文本 代码 · 共 41 行

TXT
41
字号
2G以 下 的 硬 盘 可 以 使 用 API函 数 GetDiskFreeSpace。 下 面 就 是 一 个 例 子 。 
     Declare Function GetDiskFreeSpace Lib "kernel32" Alias _ 
     "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, _ 
     lpSectorsPerCluster As Long, lpBytesPerSector As Long, _ 
     lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) _ 
     
     Public Type DiskInformation 
     lpSectorsPerCluster As Long 
     lpBytesPerSector As Long 
     lpNumberOfFreeClusters As Long 
     lpTotalNumberOfClusters As Long 
     End Type 
     
     Sub main() 
     Dim info As DiskInformation 
     Dim lAnswer As Long 
     Dim lpRootPathName As String 
     Dim lpSectorsPerCluster As Long 
     Dim lpBytesPerSector As Long 
     Dim lpNumberOfFreeClusters As Long 
     Dim lpTotalNumberOfClusters As Long 
     Dim lBytesPerCluster As Long 
     Dim lNumFreeBytes As Double 
     Dim sString As String 
     
     lpRootPathName = "c:\" 
     lAnswer = GetDiskFreeSpace(lpRootPathName, lpSectorsPerCluster, _ 
     lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters) 
     lBytesPerCluster = lpSectorsPerCluster * lpBytesPerSector 
     lNumFreeBytes = lBytesPerCluster * lpNumberOfFreeClusters 
     sString = "Number of Free Bytes : " & lNumFreeBytes & vbCr & vbLf 
     sString = sString & "Number of Free Kilobytes: " & (lNumFreeBytes _ 
     / 1024) & "K" & vbCr & vbLf 
     sString = sString & "Number of Free Megabytes: " & _ 
     Format(((lNumFreeBytes / 1024) / 1024), "0.00") & "MB" 
     
     MsgBox sString 
     End Sub 
    不 过 因 为 这 个 函 数 的 几 个 参 数 都 是 Long型 , 而 Long最 多 表 示 2G。 在 Windows 95 OSR以 后 版 本 增 加 了 GetDiskFreeSpaceEx函 数 , 以 支 持 大 硬 盘 , 这 个 函 数 的 不 同 之 处 在 于 所 有 的 Long参 数 都 改 为 了 64位 整 数 。 
<END>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?