Redactado por la Redacción de FoxPress basados en fuentes de diversos autores
© Copyrights 1998 by FoxPress, All rights reserved
FoxPress, Mayo 1998
Uno de los temas que más frecuentemente se suelen plantear es saber si un disco ha sido introducido en la disquetera. Para resolver esto podemos acudir a varios sistemas pero aquí comentó la forma de usarlo acudiendo al API de windows.
? ISFLOPPY("A:")
FUNCTION ISFLOPPY
LPARAMETERS rootpath
LOCAL volname,volnamelen,volserialnunber,;
maxfilenamelen,;
filesystemflag,filesystemname,;
filesystemnamelen,valorretorno
DECLARE INTEGER GetVolumeInformation;
IN win32api;
STRING RootPath,;
STRING @VolName,;
INTEGER VolNameLen ,;
INTEGER @VolSerialNumber,;
INTEGER @MaxFileNameLen,;
INTEGER @FileSystemFlag,;
STRING @FileSystemName,;
INTEGER FilesystemNameLen
rootpath="A:\"
volname=SPACE(255)
volnamelen=LEN(volname)
volserialnumber=0
maxfilenamelen=0
filesystemflag=0
filesystemname=SPACE(255)
filesystemnamelen=LEN(filesystemname)
getvolumeinformation(rootpath,@volname,;
volnamelen,@volserialnumber,;
@maxfilenamelen,;
@filesystemflag,;
@filesystemname,filesystemnamelen)
CLEAR DLLS getvolumeinformation
IF volserialnumber=0
RETURN .F.
ELSE
RETURN .T.
ENDIF
Por Toni Planas (SoftVic)
o también puedes usar este otro código:
destino='A:'
canal1=fcreate(destino,0)
if canal1<0
=messagebox('Unidad no ;
disponible',16,'¡;
Atención ! ')
return
endif
Toni Atència i Puigdomènech(SoftVic)
O incluso este otro:
if not ExistDisk("A:")
wait wind "no existe disco en la unidad"
endif
function ExistDisk
para unidad
valor = diskspace(unidad)
if valor = -1
retu .f.
endif
retu .t.
Por Leonardo Daniel Velazquez