La Web del Programador: Comunidad de Programadores
 
    Pregunta:  125 - ESPACIO LIBRE EN DISCO
Autor:  Rocco
Me gustaria saber si hay alguna forma en VB50 de saber cuanto espacio te queda en el HD. Lo he buscado por mil sitios y no he conseguido nada

  Respuesta:  Xavi
Develve la capidad del disco (para discos mayores de 2M).
´Código para el Modulo
Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long
´Código para el Procedimiento
´Definimos las variables
Dim CadenaResultante As Long
Dim Disco As String
Dim lpFreeBytesAvailableToCaller As Currency
Dim TotalEspacioDisco As Currency
Dim TotalEspacioLibreDisco As Currency

´Inicializamos las variables
Disco = "c:\" & Chr(0)

CadenaResultante = GetDiskFreeSpaceEx(Disco, lpFreeBytesAvailableToCaller, TotalEspacioDisco, TotalEspacioLibreDisco)
´CadenaResultante = Devuelve cero en caso de error.

´mostramos el resultado
Print "Espacio total del disco : " & Format(TotalEspacioDisco * 10000, "###,###,###")
Print "Espacio libre en disco : " & Format(TotalEspacioLibreDisco * 10000, "###,###,###")
Print "Espacio utilizado : " & Format((TotalEspacioDisco - TotalEspacioLibreDisco) * 10000, "###,###,###")

  Respuesta:  PPCOOL
Mira, si utilizas Visual Basic 5.0 es muy fácil, puedes hacerlos con algún ActiveX, si quieres yo te lo doy, yo cuento con el, si lo quieres comunicate via e-mail.

  Respuesta:  Aldo Coll
Este código te muestra como saber el espacio libre del disco y el espacio total asi como alguno otros detalles.
Crear un módulo y escribir:
Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA"_
(ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector_
As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long

Private Sub Form_Load()
Dim I1 As Long
Dim I2 As Long
Dim I3 As Long
Dim I4 As Long
Dim Unidad As String
Unidad = "C:/"
GetDiskFreeSpace Unidad, I1, I2, I3, I4
Label1.Caption = Unidad
Label2.Caption = I1 & " Sectores por cluster"
Label3.Caption = I2 & " Bytes por sector"
Label4.Caption = I3 & " N£mero de clusters libres"
Label5.Caption = I4 & " N£mero total de clusters"
Label6.Caption = "Espacio total en disco: " & (I1 * I2 * I4)