Hola.
Cita:
Empezado por SaraTorres
...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;
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;