community.borland.com

Article #15921: How to check to see if a drive is ready.

 Technical Information Database

TI921D.txt   How to check to see if a drive is ready.
Category   :General Programming
Platform    :All
Product    :Delphi  All

Description:
Q:  How can I check to see if there is a disk in the "A" drive
    without an error message box telling you that it is not ready?

A:  The following function accepts a drive letter as a parameter,
    and it will return a boolean value that indicates whether
    or not there is a disk in the drive.

function DiskInDrive(Drive: Char): Boolean;
var
  ErrorMode: word;
begin
  { make it upper case }
  if Drive in ['a'..'z'] then Dec(Drive, $20);
  { make sure it's a letter }
  if not (Drive in ['A'..'Z']) then
    raise EConvertError.Create('Not a valid drive ID');
  { turn off critical errors }
  ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
  try
    { drive 1 = a, 2 = b, 3 = c, etc. }
    if DiskSize(Ord(Drive) - $40) = -1 then
      Result := False
    else
      Result := True;
  finally
    { restore old error mode }
    SetErrorMode(ErrorMode);
  end;
end;




Reference:


7/16/98 4:33:57 PM
 

Last Modified: 01-SEP-99