[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]
{
Here is a function I've written to test if a disk is in a drive (without
generating the Windows error message). There may be a better way of doing
it in Delphi 2, but this is how it's done in Delphi 1.x:
}
function DiskExists(Drive: Char): Boolean;
var
ErrorMode: Word;
begin
Drive := UpCase(Drive);
{ Make sure drive is a valid letter }
if not (Drive in ['A'..'Z']) then
raise EConvertError.Create('Not a valid drive letter');
{ Turn off critical errors }
ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
try
Application.ProcessMessages;
Result := (DiskSize(Ord(Drive) - Ord('A') + 1) <> -1);
finally
{ Restore the old error mode }
SetErrorMode(ErrorMode);
Application.ProcessMessages;
end;
end;
If you want to test if a drive exists, with or without a disk in it, the
take a look at the API call GetDriveType()...
[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]