Ver Mensaje Individual
  #6  
Antiguo 26-10-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por SaraTorres Ver Mensaje
...Ahora, el resultado me lo da en enteros pero ¿cómo puedo hacerlo que me de con decimales el espacio libre?...
En ese caso vas a tener que cambiar el tipo de los parámetros:
Código Delphi [-]
procedure GetDiskInfoSpace( Disk: string; var prFreeBytesAvailable,
  prTotalNumberOfBytes, prTotalNumberOfFreeBytes: Double );
const
  GB = 1024*1024*1024;
var
  FreeBytesAvailable ,
  TotalNumberOfBytes,
  TotalNumberOfFreeBytes : TLargeInteger;
begin
  Disk := IncludeTrailingPathDelimiter(Disk);

  if not GetDiskFreeSpaceEx(PChar(Disk), FreeBytesAvailable,
    TotalNumberOfBytes, @TotalNumberOfFreeBytes) then
      raise Exception.Create( SysErrorMessage(GetLastError));

  prFreeBytesAvailable     := FreeBytesAvailable / GB;
  prTotalNumberOfBytes     := TotalNumberOfBytes / GB;
  prTotalNumberOfFreeBytes := TotalNumberOfFreeBytes / GB;
end;

// Ej. uso:
procedure TForm1.Button1Click(Sender: TObject);
var
  szAvailable, szTotal, szFree: Double;
begin
  GetDiskInfoSpace('C:', szAvailable, szTotal, szFree );

  ShowMessage(FormatFloat('Espacio total: 0.00', szTotal) + #$A +
    FormatFloat('Espacio libre: 0.00', szFree) + #$A +
    FormatFloat('Espacio libre disponible: 0.00', szAvailable));
end;
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita