Drive Space Format (snippet)

Iniciado por cobein, 28 Mayo 2008, 13:14 PM

0 Miembros y 1 Visitante están viendo este tema.

cobein

Aca les dejo un snippet que muestra como obtener el espacio libre, total y disponible de una unidad y formatearlo.

Código (vb) [Seleccionar]

Option Explicit

Private Declare Function SHGetDiskFreeSpace Lib "shell32" Alias "SHGetDiskFreeSpaceA" (ByVal pszVolume As String, pqwFreeCaller As Currency, pqwTot As Currency, pqwFree As Currency) As Long
Private Declare Function StrFormatByteSize64A Lib "SHLWAPI.DLL" (ByVal qdw As Currency, ByVal pszBuf As String, ByVal uiBufSize As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long

Private Sub Form_Load()
    Dim cFreeCaller As Currency
    Dim cTotal      As Currency
    Dim cFreeTotal  As Currency
    Dim cFormat     As Currency
    Dim sBuff       As String
       
    If Not SHGetDiskFreeSpace( _
       Environ$("HOMEDRIVE"), _
       cFreeCaller, _
       cTotal, _
       cFreeTotal) = 0 Then
   
        Debug.Print "Drive: " & Environ$("HOMEDRIVE")
        cFormat = cFreeTotal:   GoSub Format: Debug.Print "Total Free Space: " & sBuff
        cFormat = cFreeCaller:  GoSub Format: Debug.Print "Free Caller: " & sBuff
        cFormat = cTotal:       GoSub Format: Debug.Print "Total Space: " & sBuff

    End If
   
    Exit Sub
Format:
    sBuff = Space(32)
    StrFormatByteSize64A cFormat, sBuff, 32
    sBuff = Left(sBuff, lstrlen(sBuff))
    Return
End Sub
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.