[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]