kitnba
*
* isDiskIN( <cDrive> ) --> boolean
*
* Return TRUE if drive <cDrive> is ready.
* e.g:
* IF isDiskIN("A:"
* DO backup
* ELSE
* MESSAGEBOX("Drive not ready"

* ENDIF
*
* Ricardo Fynn (Montevideo, Uruguay)
* rfynn@cs.com.uy
*
FUNCTION isDiskIN( cDrive )
LOCAL lIsLoaded
cDrive = ALLTRIM(cDrive)
IF LEN(cDrive) > 2 .OR. LEN(cDrive) = 0 .OR. .NOT. ;
[tab]BETWEEN(ASC(UPPER(cDrive)), 65, 90)
[tab]RETURN .F.
ENDIF
IF RIGHT(cDrive,1) # ":"
[tab]cDrive = cDrive + ":"
ENDIF
lIsLoaded = "FOXTOOLS" $ SET("LIBRARY"

IF .NOT. lIsLoaded
[tab]SET LIBRARY TO SYS(2004)+"FOXTOOLS.FLL" ADDITIVE
ENDIF
cOldError = ON('error')
ON ERROR lDiskError = .T.
cSetErrMode = regfn("SetErrorMode", "I", "I"

cOldErrState = callfn(cSetErrMode,1)
lDiskError = .F.
cDrivestate = FILE(cDrive + "\NUL"

IF .NOT. lDiskError
[tab]IF cDrivestate
[tab][tab]cDriveok = .T.
[tab]ELSE
[tab][tab]cDriveok = .F.
[tab]ENDIF
ELSE
[tab]cDriveok = .F.
ENDIF
IF .NOT. EMPTY(cOldError)
[tab]ON ERROR DO (cOldError)
ELSE
[tab]ON ERROR
ENDIF
cRestErrState = callfn(cSetErrMode,cOldErrState)
IF .NOT. lIsLoaded
[tab]RELEASE LIBRARY SYS(2004)+"FOXTOOLS.FLL"
ENDIF
RETURN cDriveok
ENDFUNC
This is a .prg available from
Chris