Trucos Obtener el espacio libre de un disco mayor de 2 Gb

Para ello usaremos la función GetDiskFreeSpaceEx (válida para NT, pero no para 95, por lo menos para 95 OSR1).

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

El "truco" es que los resultados obtenidos hay que multiplicarlos por 10.000.

Por ejemplo :

Private Function EspacioLibreEx(ByVal lpRootPathName As String)
'lpRootPathName= Directorio raiz de la unidad a examinar
'Valores devueltos por la función:

    Dim ret As Long
    Dim lpFreeBytesAvailableToCaller As Currency
    Dim lpTotalNumberOfBytes As Currency
    Dim lpTotalNumberOfFreeBytes As Currency
    '
    Dim TotalBytes As Currency
    Dim TotalFreeBytes As Currency

    ret = GetDiskFreeSpaceEx(lpRootPathName, _
            lpFreeBytesAvailableToCaller, _
            lpTotalNumberOfBytes, _
            lpTotalNumberOfFreeBytes)
    TotalBytes = lpTotalNumberOfBytes * 10000
    TotalFreeBytes = lpTotalNumberOfFreeBytes * 10000
    EspacioLibreEx = Format(TotalBytes, "###,###,###") & " / " & _
                     Format(TotalFreeBytes, "###,###,###")
End Function




Trucos Trucos

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com