| Try this: 
 
Strict 
Global window:TGadget=CreateWindow("My Window",50,50,240,240)
Global treeview:TGadget=CreateTreeView(0,0,200,200,window)
SetGadgetLayout treeview,2,2,2,2
Global root:TGadget=TreeViewRoot(treeview)
Global Drive:String="C:\"
Global Direc:String="library"
Global directory:TGadget
directory=AddTreeViewNode(Drive,root)
directory=AddTreeViewNode(Direc,directory)
Global Previous:TGadget
ListFiles(directory, Drive+Direc)
While WaitEvent()
	Print CurrentEvent.ToString()
	Select EventID()
	Case EVENT_WINDOWCLOSE
		End
	End Select
Wend
Function ListFiles( folder:TGadget, rootdir:String)
	Local dir:Int = ReadDir( rootdir)
	Local subfolder:TGadget
	If Not dir Then Return
	
	'If Not rootdir.EndsWith("/") Then rootdir:+ "/"
	Repeat
		Local fn:String = NextFile(dir)
		If Not fn Then Exit ' <-- this is important, we dont want an endless loop
		
		If FileType( rootdir+"/"+fn) = 2 And fn<>"." And fn<>".." Then
			subFolder = AddTreeViewNode( fn, folder )			
			ListFiles( subFolder, rootdir+"/"+fn) ' <-- recurse over this folder
		EndIf
	Forever
	CloseDir dir
EndFunction
 
 |