Try;
Public Declare Function GetDiskFreeSpaceEx Lib "kernel32" (ByVal lpDirectoryName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long
'nl for Win 95 pre OSR2
Public Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long
Function DiskSpace(Drive$) As Currency
Dim lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency
Dim lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long
Dim i As Currency
i = 1
Drive$ = Left$(Drive$, 2) & "\"
On Error Resume Next
If GetDiskFreeSpaceEx(Drive$, lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes) Then
If Err Then
'Win 95 prior to OSR2 dos'nt support GetDiskFreeSpaceEx
' note the function always returns 2048 MBs under Win 95 if space is greater than 2048 MBs
If GetDiskFreeSpace(Drive$, lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters) Then
DiskSpace = i * lpSectorsPerCluster * lpBytesPerSector * lpNumberOfFreeClusters
End If
Else
DiskSpace = lpFreeBytesAvailableToCaller * (10 ^ 4)
End If
End If
End Function