PROGRAM FileLength
?
?
? Program Uses Calls To DOS Library To Examine Information About Any
? File On The Disk. Demonstrates F-Basic RECORD Structures And System
? Library Calls
?
?
INCLUDE finclude/AmigaExecTypes
INCLUDE finclude/AmigaFileTypes

PTR_TO FileLock lock
PTR_TO FileInfoBlock f_Info
TEXT*30 FileName
DATA(FileName," ")
INTEGER Dummy,DOSBase

&SYSLIB 1
DOSBase=OPENLIB("dos.library",0)
IF NOT DOSBase THEN
   PRINT "Trouble With DOS"
   GOTO End1
ENDIF
f_Info=ALLOCATE_WITH(SIZEOF(FileInfoBlock),10001'16)
IF f_Info=NIL THEN
   PRINT "No memory for f_Info"
   GOTO End2
ENDIF
INPUT "FileName" FileName
FileName(LENGTH(FileName)+1)=CHAR(0)
lock=Lock(DOSBase,@FileName,ACCESS_READ)
IF lock=NIL THEN
   PRINT "Trouble with DOS Lock Function"
   GOTO End3
ENDIF
Dummy=Examine(DOSBase,lock,f_Info)
IF Dummy=NIL THEN
   PRINT "Trouble With DOS Examine Function"
   GOTO End3
ENDIF

PRINT "TYPE",f_Info.fib_DirEntryType
PRINT "NAME ",f_Info.fib_FileName
PRINT "SIZE",f_Info.fib_Size
PRINT "BLOCKS",f_Info.fib_NumBlocks
PRINT "NOTE",f_Info.fib_Comment
Unlock(DOSBase,lock) 
{End3}
IF f_Info THEN Dummy=DEALLOCATE(SIZEOF(FileInfoBlock),f_Info)
{End2}
IF DOSBase THEN Dummy=CLOSELIB(DOSBase)
{End1}
END
