Is drive ready ?
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 ( 'Not a valid drive ID' ) ;
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
SetErrorMode ( ErrorMode ) ;
End ;
End ;
Example
:
if DiskInDrive('a') then
Showmessage('Ready')
else
Showmessage('Not ready');
If FileExists ( 'a:\NUL' ) Then
ShowMessage ( 'Drive Ready' )
Else
ShowMessage ( 'Drive NOT Ready' ) ;