Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long

解决方案 »

  1.   

    Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long 
     
    Public Sub GetFreeSpace(strDrv As String) 
    Dim r As Long 
    Dim BytesFreeToCalller As Currency 
    Dim TotalBytes As Currency 
    Dim TotalFreeBytes As Currency 
    Dim TotalBytesUsed As Currency 
    Call GetDiskFreeSpaceEx(strDrv, BytesFreeToCalller, TotalBytes, TotalFreeBytes) 
    MsgBox "Total Number of Bytes: " & Format$(TotalBytes * 10000,"###,###,###,##0") 
    MsgBox "Total Free Bytes: " & Format$(TotalFreeBytes * 10000,"###,###,###,##0") 
    MsgBox "Free Bytes Available: " & Format$(BytesFreeToCalller * 10000,"###,###,###,##0") 
    MsgBox "Total Space Used: " & Format$((TotalBytes - TotalFreeBytes) * 10000, "###,###,###,##0") 
    End Sub