home *** CD-ROM | disk | FTP | other *** search
- // Directory tree.
- //
- // Shows the directory tree graphically.
-
- USE Graphics
-
- graphicscreen(0)
- window(0,80,0,24)
- clear
-
- MakeTree("","Comal:",0)
-
- textscreen
-
- PROC MakeTree(path$,dirname$,level) CLOSED
- USE Catalog
- USE Graphics
-
- DIM CatId OF ULONG
- DIM filesize OF LONG
-
- IF dirname$(LEN(dirname$)..LEN(dirname$))=":" THEN
- slash$:=""
- ELSE
- slash$:="/"
- ENDIF
- ShowNode(dirname$,level)
- move(2,0.5)
- OpenCatalog(path$+dirname$,CatId)
- x1:=xcor; y1:=ycor
- WHILE NOT EOC(CatId) DO
- ReadCatalog(CatId,name$,filesize)
- IF filesize=-1 THEN // subdirectory
- y2:=ycor
- moveto(x1,y1)
- drawto(x1,y2)
- draw(0,0.5)
- x1:=xcor; y1:=ycor
- draw(2,0)
- MakeTree(path$+dirname$+slash$,name$,level+1)
- ENDIF
- ENDWHILE
- CloseCatalog(CatId)
-
- PROC ShowNode(dirname$,level)
- plottext(xcor+0.5,ycor-0.25,dirname$)
- ENDPROC ShowNode
-
- ENDPROC MakeTree
-