一共找到两个例子 1: procedure xxx var driver:pchar; sec1, byt1, cl1, cl2:longword; begin driver:='a:\';//要显示的驱动器名 try GetDiskFreeSpace(driver, sec1, byt1, cl1, cl2); cl1 := cl1 * sec1 * byt1; 该驱动器总共容量 cl2 := cl2 * sec1 * byt1; 该驱动器可用容量 if cl1>0 then showmessage('have a disk!'); finally showmessage('no drive or no disk); end; //////////////////////////////////////////// 2: function DiskInDrive(Drive: Char): Boolean; var ErrorMode: word; begin if Drive in ['a'..'z'] then Dec(Drive, $20); if not (Drive in ['A'..'Z']) then raise EConvertError.Create(Format('%S 不是有效的驱动器符号',[Drive]) ); ErrorMode := SetErrorMode(SEM_FailCriticalErrors); try if DiskSize(Ord(Drive) - $40) = -1 then Result := False else Result := True; finally SetErrorMode(ErrorMode); end; end;例子 procedure TForm1.Button1Click(Sender: TObject); begin if not DiskInDrive('A') then showmessage('no disk in a'); end;
一共找到两个例子
1:
procedure xxx
var
driver:pchar;
sec1, byt1, cl1, cl2:longword;
begin
driver:='a:\';//要显示的驱动器名
try
GetDiskFreeSpace(driver, sec1, byt1, cl1, cl2);
cl1 := cl1 * sec1 * byt1; 该驱动器总共容量
cl2 := cl2 * sec1 * byt1; 该驱动器可用容量
if cl1>0 then showmessage('have a disk!');
finally
showmessage('no drive or no disk);
end;
////////////////////////////////////////////
2:
function DiskInDrive(Drive: Char): Boolean;
var
ErrorMode: word;
begin
if Drive in ['a'..'z'] then
Dec(Drive, $20);
if not (Drive in ['A'..'Z']) then
raise EConvertError.Create(Format('%S 不是有效的驱动器符号',[Drive]) );
ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
try
if DiskSize(Ord(Drive) - $40) = -1 then
Result := False
else
Result := True;
finally
SetErrorMode(ErrorMode);
end;
end;例子
procedure TForm1.Button1Click(Sender: TObject);
begin
if not DiskInDrive('A') then
showmessage('no disk in a');
end;