Lenguaje de programación Borland Delphi
IsDiskIn
El truco es llamar a la API GetDiskFreeSpace y devolver su valor de retorno como boolean. La siguiente función toma la letra de la unidad que se recibe como parámetro (por ejemplo 'A', 'D', etc.) y devuelve True si hay un disco en la unidad, o False si no es así.
uses Windows;
var
CaminoUnidad: array [0..3] of char = 'A:';
function IsDiskIn(unidad: char): boolean;
var
d1, d2, d3, d4: longword;
begin
CaminoUnidad[0] := unidad;
Result := GetDiskFreeSpace(CaminoUnidad, d1, d2, d3, d4);
end;
En la implementación usamos una cadena terminada en nulo inicializada (CaminoUnidad) que contiene el directorio raíz de la unidad A: y sustituimos la letra de la unidad por la que se pasa como parámetro antes de llamar a GetDiskFreeSpace.
Llamada de ejemplo:
procedure TForm1.Button1Click(Sender: TObject);
begin
if not IsDiskIn('A') then
ShowMessage('La unidad A: no está lista');
end;
Publicado el: 2003-10-05